做一个词频统计程序,该程序具有以下功能:
(1)可倒入任意英文文本文件
(2)统计该英文文件中单词数和各单词出现的频率(次数),并能将单词按字典顺序输出。
求各单词出现的频率(次数),求大神 帮助,用一位数组实现
我有想法,不知道怎么做:
char temp[100] 是存放着从文件中读取的所有单词
定义一个数组 char a[10]
for(i=0;temp[i]!=' ';i++)
a[i]=temp[i]//先把第一个单词取出来存放在这个数组中
文件中单词存放形式如下:
good cat estimate(每个单词之间用一个空格隔开)
然后把第一个单词与原来的数组 的每个单词进行比对
先看长度是否相同,若相同,看是否每个字母是否相同,若依然相同,则两个单词相等,以此类推
Int i;每比较完一个单词,i+2 相当于移到了第二个单词的第一个字母
就这样
你的想法逻辑上不错,但是不可采取的。因为文件要是很大的话,能全部读进来吗?下面提供一个做参考。
//#include "stdafx.h"//vc++6.0加上这一行.好多地方看不懂,可以帮我加上注释吗?谢谢!
如下:
if(!isalpha(w[i].w[0]))
w[i].w
w[j=strlen(w[i].w)-1]
w[i++].n=1
if(!isalpha(w[i].w[0]))//如果一个字符串的开头字符不是字母,则用下一行的语句抹掉它
strcpy(w[i].w,w[i].w+1);
if(!isalpha(w[i].w[j=strlen(w[i].w)-1]))//如果字符串的最后一个字符不是字母,用下一行清0
w[i].w[j]='\0';
谢谢!
本回答被提问者和网友采纳