问题及代码:
/*统计输入的行数、单词数和字符数*/
#include<stdio.h>
#define IN 1 //单词在内
#define OUT 0 //单词在外
int main()
{
int c,nw,nl,nc,state; // c表示当前输入字符,state表示前一个字符;
nw=nl=nc=0;
state=OUT; //初始化前一个字符,表示在单词外;
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("%d %d %d\n",nl,nc,nw);
}
运行结果:
学习心得:
知识总结: