1 条题解

  • 0
    @ 2025-9-15 23:58:07

    C

    说明

    本题要求将输入的小写字母转换为对应的大写字母输出。核心逻辑基于ASCII码的特性:小写字母与对应的大写字母ASCII码值相差32(如'a'的ASCII码是97,'A'是65,97-32=65)。因此,只需将输入的小写字母的ASCII码减去32,即可得到对应的大写字母。

    由于输入保证是小写字母(无需处理异常情况),直接进行转换即可,时间复杂度为O(1)。

    代码

    #include <stdio.h>
    
    int main() {
        char c;
        // 读取小写字母
        scanf("%c", &c);
        
        // 小写转大写:ASCII码减32
        char upper_c = c - 32;
        
        // 输出大写字母
        printf("%c\n", upper_c);
        return 0;
    }
    

    C语言拓展知识

    推荐搜索:ASCII码表中大小写字母的范围(小写a-z:97-122;大写A-Z:65-90)、字符在C语言中的存储本质(作为整数存储ASCII码)、字符算术运算的原理(直接对ASCII码进行加减)。

    C++

    说明

    本题逻辑与C语言一致(利用ASCII码差值转换大小写),C++通过输入输出流处理字符,代码更简洁,无需格式控制符,直接对字符进行算术运算即可完成转换。

    新知识

    1. 字符算术运算:
      • 术语:c - 32(小写字母转大写)
      • 解释:在C++中,字符变量本质上存储的是ASCII码(整数),因此可以直接进行算术运算。对于小写字母c,减去32后得到对应大写字母的ASCII码,赋值给字符变量后会自动解析为对应字符。
      • 对比:C和C++的字符运算规则相同,但C++的输入输出更直观,无需关注格式字符串。

    AC

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        char c;
        // 读取小写字母
        cin >> c;
        
        // 转换为大写字母并输出
        cout << (char)(c - 32) << endl;
        return 0;
    }
    

    C++拓展知识

    推荐搜索:C++中char类型的符号性(不同编译器的默认设置)、标准库函数toupper的使用(更通用的大小写转换方法)、字符常量与变量的区别(如'a'char c = 'a')。

    • 1

    信息

    ID
    369
    时间
    1000ms
    内存
    64MiB
    难度
    4
    标签
    递交数
    28
    已通过
    18
    上传者