我的答案:
#include <stdio.h>
int main()
{
int c;
while( (c = getchar()) != EOF)
if(c == ' ' || c == '\n' || c == '\t')
printf("\n");
else
putchar(c);
}
思路 检测到得空格 换行 制表 都用换行代替。
答案:
#include <stdio.h>
#define IN 1
#define OUT 0
int main()
{
int c, state;
state = OUT;
while( (c = getchar()) != EOF)
{
if(c == ' ' || c == '\n' || c == '\t')
{
if(state == IN)
{
putchar('\n');
state = OUT;
}
}else if (state == OUT)
{
state = IN;
putchar(c);
}else
putchar(c);
}
}
总结: 我的答案思路大致没错..但是少考虑了多次出现单词分隔时,替换的换行符会相继增多..这样就多出很多空的行。
书答案的代码 对state的布尔量的理解还是不够...还需要慢慢理解.