最近在看《c程序设计语言》 做了一下练习1-9
我的思路是先判断当前字符是否为空格字符,如果是,就进行输出;不是,判断下一个字符是否也为空格字符,如果是,就一直判断,直到有个字符不是空格字符。打印一个空格字符并打印当前的非空格字符,继续读入字符:
#include <stdio.h>
int main(void) {
int c,d;
while((c=getchar())!=EOF)
if(c!=' ')
putchar(c);
else
{
while((d=getchar())==' ')
continue;
putchar(' ');
putchar(d);
}
return 0;
}
但当我看到原书的答案之后,我发现,书上的比我的更加简易,思路一下就打开了
#include <stdio.h>
int main()
{
char c;
int flag = 0; //空格标识
while ((c = getchar()) != EOF)
{
if (c == ' ')
{
if (flag == 0)
{
putchar(c);
}
flag = 1;
}
else
{
putchar(c);
flag = 0;
}
}
return 0;
}
原来还可以这样写
————————————————
原书答案链接
版权声明:本文为CSDN博主「再见理想Bao」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a851248662/article/details/80291218