问题描述: 在当前目录中存在文件名为“case14.in”的文本文件,其内容为一篇英文文章(以EOF作为结束标志)。现要求读取该文本文件内容,统计文章中每个单词出现的次数,并输出出现次数最多的前5个单词及其出现次数(按出现次数由多到少的顺序输出,次数相同时按字典顺序输出,不足5个单词时,按顺序输出全部单词)。程序中注意如下细节: (1)空格、标点符号与回车符起到分隔单词的作用。 (2)文章一行的末尾可能有连字符,出现连字符时,该行最末的字符串与下行最先出现的字符串构成一个单词; (3)名词缩写算一个单词; (4)数字不算单词; (5)单词不区分大小写; (6)输出时单词全是用小写。
#include
#include
struct WORDCOUNT{
char word[20];
int count;
};
int main()
{
FILE *fp;
struct WORDCOUNT wordcount[10000];
char essay[200000], ch, temp[20];
int i, j, k, len, count, t;
fp = fopen("case14.in", "r");
for(i=0; (ch = fgetc(fp)) != EOF; i++)
essay[i] = ch;
len = i;
//全部字符写到essay数组中
for(i=0; i |