10.11.15
1.5.3 行计数
统计输入的行数。每一行均以换行符结束。因此,统计输入行数就等价于统计换行符的个数。
#include <stdio.h>
/*统计输入的行数*/
main()
{
long c,n1;
n1=0;
while((c=getchar())!=EOF)
if(c=='/n')
++n1;
printf("%d/n",n1);
}
1.5.4 单词计数
用于统计行数、单词书与字符数,这里对单词定义放得比较宽,它是任何其中不包含空制表符或换行符的字符序列。
#include <stdio.h>
#define IN
1
/*在单词内*/
#define OUT
0
/*在单词外*/
/*统计输入的行数、单词与字符数*/
main()
{
int c,n1,nw,nc,state;
state=OUT;
n1=nw=nc=0;
while((c=getchar())!=EOF)
{
++nc;
if(c=='/n')
++n1;
if(c==' '||c=='/n'||c=='/t')
state=OUT;
else if (state==OUT)
{
state=IN;
++nw;
}
}
printf("%d %d %d/n",n1,nw,nc);
}
在兼有值与赋值两种功能的表达式中,赋值结合次序是由右至左。