一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格
输入格式
一行,一个字符串(长度不超过 200200),句子的头和尾都没有空格。
输出格式
过滤之后的句子。
输出时每行末尾的多余空格,不影响答案正确性
样例输入
Hello world.This is c language.
样例输出
Hello world.This is c language.
1、定义头文件
#include <iostream>
#include <string>
#include <stdio.h>
2、定义数据
- i 最大循环次数
- pos当前是位置
char a[205];
int i = 250;
int pos;
3、输入数据
gets(a);
4、转换为string
string s(a);
5、处理数据
- 如果发现是两个空格,则换成一个空格
- find返回出现字符串的位置下标
- replace表示替换,pos:从pos的位置, 2:替换两个,“ ”:替换为“ ”
while (i--) {
if ((pos = s.find(" ")) != string::npos){
s.replace(pos, 2, " ");
}
}
6、输出数据
cout << s;
7、return 0
return 0;
完整代码
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
char a[205];
int main(){
gets(a);
string s(a);
int i = 250;
int pos;
while (i--) {
if ((pos = s.find(" ")) != string::npos){
s.replace(pos, 2, " ");
}
}
cout << s;
return 0;
}