题解
字符判断
1 条题解
-
0
P4308 字符判断(【入门】)
解题思路
在计算机里,每个字符都有一个编号,叫 ASCII 码。大写字母
A到Z的编号是连续的(65 到 90),小写字母a到z的编号也是连续的(97 到 122)。所以我们只要比较字符的编号范围,就能判断它是哪一类:- 如果
c >= 'A' && c <= 'Z',说明它是大写字母,输出capital; - 如果
c >= 'a' && c <= 'z',说明它是小写字母,输出lowercase; - 两个都不满足,就是其他字符,输出
others。
字符之间可以直接用
>=、<=比较,因为 C++ 会自动比较它们的 ASCII 码。拿样例输入
A来说,'A' <= 'A' <= 'Z'成立,所以输出capital。边界情况:如果输入数字字符如
'5',它的 ASCII 码是 53,不在大小写字母的范围内,会走else输出others,符合题意。判断时一定要把两个字母区间都写完整,别漏掉任何一边。参考代码
// 判断一个字符是大写字母、小写字母还是其他字符 #include <iostream> using namespace std; int main() { char c; cin >> c; if (c >= 'A' && c <= 'Z') cout << "capital" << endl; // 大写字母 else if (c >= 'a' && c <= 'z') cout << "lowercase" << endl; // 小写字母 else cout << "others" << endl; // 其他字符 return 0; }复杂度分析
最多比较两次就能得出结果,和字符是什么无关,所以时间复杂度是 。只用了一个字符变量,额外空间复杂度也是 。
- 如果
- 1