【信息学奥赛一本通】2047:【例5.16】过滤空格

2047:【例5.16】过滤空格


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 40804     通过数: 26436

【题目描述】

过滤多余的空格。一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。

【输入】

一行,一个字符串(长度不超过200200),句子的头和尾都没有空格。

【输出】

过滤之后的句子。

【输入样例】

Hello      world.This is    c language.

【输出样例】

Hello world.This is c language.

 参考代码:C++

#include
#include
using namespace std;
int main()
{
	string s;
	while (cin >> s)//cin遇到空格就结束
		cout << s << ' ';
	return 0;
}

计数方法:

#include
#include
using namespace std;

int main() {
	string s;
	getline(cin, s);
	bool flag = false;
	for (int i = 0; i < s.size(); i++) {
		if (s[i] != ' ') {
			cout << s[i];
			flag = true;
		}
		else if (s[i] == ' '&& flag==true) {
			cout << s[i];
			flag = false;//遇到空格置为false
		}
	}
	return 0;
}

你可能感兴趣的:(算法,c++)