top1编程
← 返回题目
题解

大写转小写

1 条题解

  • 0
    @ 2026-8-3 18:46:46

    解题思路

    输入一个大写字母,输出对应的小写字母。比如输入 A,输出 a。这题和“小写转大写”恰好是相反方向。

    再看 ASCII 表:A 的编号是 65,a 是 97;B 是 66,b 是 98。同一个字母,大写比小写的编号小 32。所以大写转小写,把编号加上 32 就行了:小写 = 大写 + 32。

    例如输入 A:A 的编号是 65,65+32=97,97 对应的字符正好是 a。

    写代码时要注意:char(c + 32) 外面一定要套 char(),因为 c + 32 算出来是整数,不转回字符类型,输出就会显示成数字而不是字母。

    和上一题对比记忆:小写转大写是减 32,大写转小写是加 32。只要记住“同一个字母的大小写编号差 32”这一条,两个方向都不会错。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        char c;         // c:输入的大写字母
        cin >> c;       // 读入一个大写字母
        // 大写字母ASCII码比小写小32,加32变成小写;char()转回字符
        cout << char(c + 32) << endl;
        return 0;
    }
    

    复杂度分析

    程序只做一次读入、一次加法、一次输出,操作次数固定,时间复杂度是 O(1)。

    空间上只用了 1 个 char 变量,空间复杂度也是 O(1)。

    和上一题一样,输入只有一个字母,无论它是什么字母,程序运行的速度都一样,这就是常数时间 O(1) 的含义。

    • 1