C语言实现词频统计——第二版

原需求

1.读取文件,文件内包可含英文字符,及常见标点,空格级换行符。

2.统计英文单词在本文件的出现次数

3.将统计结果排序

4.显示排序结果

新需求:

1.小文件输入. 为表明程序能跑

2.支持命令行输入英文作品的文件名

3. 支持命令行输入存储有英文作品文件的目录名,批量统计

4. 从控制台读入英文单篇作品,重定向输出

代码实现:

在原代码的基础上稍做了修改,使之可以批量读取文件夹下的所有文件,所以加了一个mode来判断是单个文件输入还是文件夹输入,来不及整理程序,所以现在程序有点丑。这次作业交了以后会干两件事,第一是精简程序结构,第二是优化程序性能,可能会重新构思程序的主体部分。

 1     if (mode == 2)
 2     {
 3         printf("输入读入文件夹的名字:");
 4         scanf("%s", &fa);
 5         if ((fHandle = _findfirst("*.txt", &fa)) == -1L)      //文件夹目录 
 6         {
 7             printf("当前目录下没有txt文件
");
 8             return 0;
 9         }
10         else
11             do
12             {
13                 fp = fopen(fa.name, "r");
14                 for (i = 0; i < 500; i++)
15                 {
16                     (w + i)->num = 1;
17                 }
18 
19                 /****************单词匹配****************************************/
20                 i = 0;
21                 while (!feof(fp))//文件尚未读取完毕
22                 {
23                     ch = fgetc(fp);
24                     (w + i)->a[j] = '