一开始自己写的:
a:
#include
main()
{
int c;
int state=0;
while (( c=getchar()) != EOF) {
if (c==' '){
state=1;
continue;
}
if (state){
state=0;
putchar(' ');
putchar(c);
}else
putchar(c);
}
}
网上搜的:
b:
#include
#define NONBLANK 'a'
void main()
{
int c , lastc;
lastc = NONBLANK;
while((c = getchar()) != EOF)
{
if(c != ' ')
putchar(c);
else if(lastc != ' ')
putchar(c);
lastc = c;
}
}
c:
#include
int main(void)
{
int c;
int inspace;
inspace = 0;
while((c = getchar()) != EOF)
{
if(c == ' ')
{
if(inspace == 0)
{
inspace = 1;
putchar(c);
}
}
if(c != ' ')
{
inspace = 0;
putchar(c);
}
}
return 0;
}
看起来b方法比较酷 .
方法b中的这句:
else if(lastc != ' ')
putchar(c); 将putchar的参数改为'\n',程序的功能就变为以每行一个单词的形式打印输入。