#include<stdio.h>
#define IN 1 // 在单词内 宏定义去除"幻数
#define OUT 0 // 在单词外 宏定义提高程序可读性
/* 统计输入的行数、单词数与字符数*/
main()
{
int c,state=OUT;
int nl=0,nw=0,nc=0;
while((c=getchar())!=EOF)
{
nc++;
if(c=='/n')
nl++;
if(c==' '||c=='/n'||c=='/t')
state=OUT; //注意符号常量的“=”“==”
else if(state==OUT) //每遇到单词的第一个字符,它就作为
//一个新单词加以统计
{ state=IN;
nw++;
}
}
printf("nc=%d,nw=%d,nl=%d",nc,nw,nl);
#include<stdio.h>
#define IN 1
#define OUT 0
/*print input one word per line*/
main()
{
int c,state;
state=OUT;
while((c=getchar())!=EOF)
{
if(c==' '||c=='/b'||c=='/N') //判断一个c是否是某单词分隔符
{
if(state==IN) //判断这个单词分隔符是否表示某个单词结束
{
putchar('/n');
state=OUT;
} //不是表示某个单词结束,则不进行任何操作
}
else if(state==OUT)//c是某个单词的第一个字符
{
state=IN; //此处是赋值
putchar(c);
}
else //c不是某个单词中的第一个字符但是是其他字符
putchar(c);
}
}