一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。
输入格式
一行,一个字符串(长度不超过 200),句子的头和尾都没有空格。
输出格式
过滤之后的句子。
Sample 1
Input | Output |
Hello world.This is c language. | Hello world.This is c language. |
代码实现:
#include <stdio.h>
int main() {
char str[205];
int x = 1;
while ((scanf("%s", str) ) != EOF) {
if (x == 1) {
printf("%s", str);
x++;
} else
printf(" %s", str);
}
return 0;
}
问题描述:输入一行句子代表一行字符串,字符串中可能含多个空格,现需使多个空格仅需输出一个,且保证句子的头和尾都不包含空格。
解题思路:初读觉得先使用一个字符串读入,然后再使用另一个字符串输出,即只保留第一个字符串中不是连续两个空格的字母,但判断条件时,条件考虑不充分,于是想到可以使用scanf函数进行解答,即,可以将一串字符分多次读入,当scanf函数读到空格时便会停止,故可以scanf函数读入,然后在输出时多加一个空格即可。
错误描述:未控制好句子的首尾不含空格。