代码解析:
在 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分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复