题解
大写转小写
1 条题解
-
0
解题思路
输入一个大写字母,输出对应的小写字母。比如输入
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