代码解析:

在 main 函数中,首先声明一个字符串变量 sentence,用于存储输入的整行句子。使用 getline(cin, sentence) 函数读取一行用户输入,并将其存储在 sentence 中。

接下来,声明一个布尔变量 space,用于表示当前是否已经遇到连续空格。我们还声明一个字符串变量 filtered_sentence,用于存储过滤后的字符串。

然后,使用一个循环遍历字符串 sentence 中的每个字符。对于每个字符 c,如果它是一个空格字符,则检查上一个字符是否也是空格字符。如果上一个字符是空格字符,则将 space 设置为 true,表示遇到了连续空格。否则,将 space 设置为 false,表示不是连续空格,并将字符 c 添加到 filtered_sentence 中。

通过以上方式,可以从输入字符串中去除连续的空格。空格字符只会被保留一次,其他的连续空格字符会被过滤掉。最后,我们通过 cout 输出过滤后的字符串 filtered_sentence。


参考代码:

#include <iostream>

#include <string>

using namespace std;


int main() {

    string sentence;

    getline(cin, sentence);


    bool space = false;

    string filtered_sentence = "";

    for (char c : sentence) {

        if (c == ' ') {

            if (!space) {

                space = true;

                filtered_sentence += c;

            }

        } else {

            space = false;

            filtered_sentence += c;

        }

    }


    cout << filtered_sentence << endl;


    return 0;

}


点赞(0)
 

0.0分

2 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论