编写一个程序,用于统计行数、单词数与字符数, 单词仅由连续的字母(含大小写)组成且前后必须有分隔符('\n','\t',' '),第一个和最后一个单词除外。
遇文件结束字符EOF结束统计。(键盘输入ctrl+z)
例
输入
abc DEF123
^z
输出
Lines:1
Words:1
Chars:10
#include <stdio.h>
#define OUT 0
#define IN 1
int main()
{
int hangshu,danci,zifu,state,ifnum;
hangshu = danci = zifu = 0;
state = OUT;
ifnum = 0;
char c;
while((c=getchar())!=EOF)
{
++zifu;
if(c=='\n')
++hangshu;
if(c=='\n'||c==' '||c=='\t')
state = OUT;
if(c>='0'&&c<='9')
ifnum = 1;
if(state == OUT)
{
if(ifnum == 0)
state = IN;
++danci;}
}
printf("Lines:%d\n",hangshu);
printf("Words:%d\n",danci);
printf("Chars:%d\n",zifu);
}
测试用例 1
adsa↵
sad sadgth↵
dghyj↵
dsdf↵
Lines:4↵
Words:5↵
Chars:28↵
测试用例 2
adsa↵
sad12 sadgth↵
12dghyj↵
dsdf↵
Lines:4↵
Words:3↵
Chars:34↵
测试用例 3
happy↵
hello world↵
↵
↵
bye↵
Lines:5↵
Words:4↵
Chars:24↵
请问下大家,是哪里出问题了?