描述
一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。
输入 :一行,一个字符串(长度不超过200),句子的头和尾都没有空格。
输出:过滤之后的句子。
样例输入
Hello world.This is c language.
样例输出
Hello world.This is c language.
解法1(最优解) :
解题思路:利用scanf()函数自动屏蔽空格回车的特性
#include<iostream>
using namespace std;
char st[200];
int main(){
while (scanf("%s",&st)==1)
cout<<st<<" ";
return 0;
}
解法2(比较麻烦)
解题思路:遍历每个元素,如果不是空格则输出,如果是空格,输出空格,并判断后续元素是否为空格如果是则跳过,直到找到一个不为空格的元素
#include <stdio.h>
#include <iostream>
using namespace std;
int main() {
string a;
getline(cin , a);
int n = a.length() , j;
for(int i = 0; ;) {