读书人

将输入复制到输出的程序将接续的空格

发布时间: 2012-07-30 16:19:05 作者: rapoo

将输入复制到输出的程序,将连续的空格用一个空格代替。

#include <stdio.h>
#include <stdlib.h>
int main(void){

int now,former;
while((now = getchar()) != EOF){
if (now != ' ')
putchar(now);
else{
former = now;
now = getchar();
if (now != ' '){
putchar(former);
putchar(now);
}
else
putchar(now);
}

}
system("pause");
return 0;
}
我写的这种方法只能将连续的两个空格用一个代替,有什么好办法呢

[解决办法]

C/C++ code
#include <stdio.h>#include <stdlib.h>int main(void){int now;BOOL hasSpace = TRUE;while((now = getchar()) != EOF){    if (now != ' '){      putchar(now);      hasSpace = FALSE;    }    else if(!hasSpace){      putchar(now);      hasSpace = TRUE;    }}system("pause");return 0;}
[解决办法]
程序的逻辑应该差不多这样。
读取一个字符,如果是空格,标记空格标记为真,然后扔掉。
如果不是空格,看空格标记,如果空格标记为假则输出,如果空格标记为真则输出一个空格,然以输出这个读入的字符,然后将空格标记设为假。

读书人网 >C语言

热点推荐