输人一段含西文字符和中文字符的正文 ,统计字数、 字符数和行数。字是指一个中文字符或一个西文字符串(由空白符分隔);字符是指一个西文字符或一个中文字 符;空白符是指空格或回车或水平制表Tab
#include <stdio.h>
int main()
{
char c;
int cs = 0,words=0,rows=0;
int fs = 0,isc = 0;
while((c=getchar())!=EOF)
{
if(rows==0)
rows++;
if(fs==1)
{
fs=0;
continue;
}
if(c == ' ' || c=='\t' || c=='\n' || c<0)
{
if(c<0)
words++;
if(isc == 1)
words++;
isc = 0;
if(c < 0)
{
cs++;
fs = 1;
}
if(c=='\n')
{
rows++;
}
continue;
}
cs++;
isc = 1;
fs = 0;
}
if(isc==1)
words++;
printf("字数:%d,字符数:%d,行数:%d\n",words,cs,rows);
return 0;
}
注意点:中文占3个字节;空格等分隔字符可能连续出现;遇到中文时,也相当于时前面英文串的分隔符