1 条题解

  • 0
    @ 2025-3-8 16:11:05

    解题思路 判断字符类型:使用 isupper() 函数区分大写字母和小写字母。

    处理大写字母:直接输出其 ASCII 码(通过 int(c) 转换)。

    处理小写字母:通过 ASCII 码差值转换为大写字母(小写字母比大写字母大 32)。

    代码实现

    #include <iostream>
    using namespace std;
    
    int main() {
        char c;
        cin >> c;  // 读取输入的字符
        if (isupper(c)) {
            // 大写字母:输出 ASCII 码
            cout << int(c);
        } else {
            // 小写字母:转换为大写字母后输出
            cout << char(c - ('a' - 'A'));
        }
        return 0;
    }
    

    代码解析 字符读取:cin >> c 读取输入字符,题目保证输入合法。

    大写字母处理:

    isupper(c) 判断是否为大写字母。

    int(c) 将字符转换为对应的 ASCII 码值输出。

    小写字母处理:

    通过 c - ('a' - 'A') 计算差值。例如,'a' - 'A' 等于 32,c 减去 32 即可得到对应的大写字母。

    char(...) 将结果转换为字符类型输出。

    关键点 ASCII 码转换:利用小写和大写字母的 ASCII 码差值为 32 的特性,直接通过算术运算转换。

    类型转换:使用 int() 和 char() 显式控制输出类型,确保结果符合题目要求。

    • 1

    信息

    ID
    159
    时间
    1000ms
    内存
    64MiB
    难度
    10
    标签
    递交数
    5
    已通过
    3
    上传者