top1编程
← 返回题目
题解

统计大写字母的个数

1 条题解

  • 0
    @ 2026-8-5 15:42:10

    解题思路

    题目要求统计一行字符串里大写字母的个数。这一行字符串里可能有空格,所以我们用 getline(cin, s) 把整行读进来。

    怎么判断一个字符是不是大写字母呢?在 ASCII 码表里,大写字母 A 到 Z 是连续排列的,A 的编码是 65,Z 的编码是 90。所以只要满足 c >= 'A' && c <= 'Z',这个字符就是大写字母。

    我们用一个计数器 cnt,从 0 开始。遍历字符串的每个字符,遇到大写字母就把 cnt 加 1,最后输出 cnt 就是答案。

    拿样例 There Are Five Apples 来说:里面的大写字母有 T、A、F、A,一共 4 个,所以输出 4。

    参考代码

    // 用途:统计字符串中大写字母的个数
    #include <iostream>
    #include <string>
    using namespace std;
    int main(){
        string s;
        getline(cin,s); // 一行可能含空格,用getline读整行
        int cnt=0;
        for(char c:s)
            if(c>='A' && c<='Z') cnt++; // 判断是否是大写字母
        cout<<cnt<<endl;
        return 0;
    }
    

    复杂度分析

    • 时间:把字符串从头到尾扫描一遍,时间复杂度是 O(n),n 是字符串长度(不超过 100)。
    • 空间:只用了一个字符串和一个计数器,空间复杂度是 O(1)。
    • 1