top1编程
← 返回题目
题解

统计空格

1 条题解

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

    解题思路

    题目让我们数一数一个字符串里有多少个空格。这个字符串里可能有很多空格,所以要用 getline 读整行。

    方法非常简单:用一个计数器 cnt,从 0 开始,把字符串从头到尾扫描一遍,每遇到一个字符是空格 ' ',就把 cnt 加 1。最后输出 cnt。

    注意:因为字符串里有空格,一定不能用 cin >> s 读(那样只会读到空格前的部分),必须用 getline(cin, s) 读整行。

    拿样例 There are 5 apples and 8 oranges 来说,数一数里面有 6 个空格,所以输出 6。

    参考代码

    // 用途:统计字符串中空格的个数
    #include <iostream>
    #include <string>
    using namespace std;
    int main(){
        string s;
        getline(cin,s); // 字符串含空格,必须用getline
        int cnt=0;
        for(char c:s)
            if(c==' ') cnt++; // 是空格就计数加1
        cout<<cnt<<endl;
        return 0;
    }
    

    复杂度分析

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