// wordcount.c 统计字符、单词和行
#include<stdio.h>
#include<ctype.h> //为isspace()提供函数原型
#define STOP '|'
int main()
{
char c; //读入字符
char prev; //前一个读入字符
long n_chars=0L; //字符数
int n_lines=0; //行数
int n_words=0; //单词数
int p_lines=0; //不完整行数(|符号后还有字符会产生不完整行)
bool inword = false; //如果c在一个单词中,则inword=ture
printf("Enter text to be analyzed(| to terminate):\n");
prev='\n'; //用于识别完整行,只含有‘|’的行不算作完整行也不算作不完整行
while ((c=getchar())!=STOP)
{
n_chars++; //统计字符
if (c=='\n')
n_lines++; //统计行
if (!isspace(c) && !inword)
{
inword=true; //开始一个新单词
n_words++; //统计单词
}
if (isspace(c)&&inword)
inword=false; //到达单词尾部
prev=c; //保存字符值
}
if (prev!='\n')
p_lines=1;
printf("characters=%ld,words=%d,lines=%d,",n_chars,n_words,n_lines);
printf("partial lines=%d\n",p_lines);
return 0;
}
统计字符、单词和行
最新推荐文章于 2022-04-26 20:49:24 发布