top1编程
← 返回题目
题解

字符判断

1 条题解

  • 0
    @ 2026-8-5 21:17:14

    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;
    }
    

    复杂度分析

    最多比较两次就能得出结果,和字符是什么无关,所以时间复杂度是 O(1)O(1)。只用了一个字符变量,额外空间复杂度也是 O(1)O(1)。

    • 1