top1编程
← 返回题目
题解

替换空格

1 条题解

  • 0
    @ 2026-8-5 14:38:11

    解题思路

    小童要把一句话里所有的空格都替换成英文逗号。

    可以想象成:一段文字里有些位置是"空格",我们把每个空格都插上一面小旗子(逗号),其他字一个都不能动。

    做法:

    1. 用 getline(cin, s) 读整行,因为要处理空格;
    2. 从头到尾看每一个字符;
    3. 如果是空格,就输出一个逗号 ,;
    4. 如果是其他字符,就原样输出。

    比如 Hello world 中间有一个空格,替换后就变成 Hello,world。

    参考代码

    // 替换空格:把一句话中所有的空格替换成英文逗号
    #include <iostream>
    using namespace std;
    int main(){
        string s;
        getline(cin,s); // 读整行(含空格)
        int n=s.size(); // n记录字符串长度
        for(int i=0;i<n;i++){
            if(s[i]==' ') cout<<','; // 空格替换成逗号
            else cout<<s[i];         // 其他字符原样输出
        }
        cout<<endl;
        return 0;
    }
    

    复杂度分析

    • 时间复杂度:把字符串从头到尾扫一遍,长度是 n,所以是 O(n)。
    • 空间复杂度:只用了一个字符串和循环变量,额外空间是 O(1)。
    • 1