C语言小白求问。如何读取字符串文件,并根据不同长度的单词统计总共出现的频率? 40

例如01.txt文件内容为IamTom,helloworld输出:Count[1]:01;Count[2]:01;Count[3]:01;Count[5]:02;好像用<... 例如01.txt文件内容为 I am Tom,hello world

输出:
Count[1]:01;
Count[2]:01;
Count[3]:01;
Count[5]:02;

好像用<string.h>中的函数会比较方便
展开
 我来答
自我编程
2020-10-13 · 科技优质答主
自我编程
采纳数:1481 获赞数:4279

向TA提问 私信TA
展开全部

看你问题演示,是统计一段英文文字中,不同单词出现次数(但world明明只出现1次,你演示代码却输出的是2)。

如想统计一段文件中的英文单词出现次数。需实现以下功能:

一、遍历字符串,通过分割符号空格及标点符号获取单词数组。

二、大小写转换,把数组单词全部转换为大写或者小写(识别同一个单词不同大小写)。

三、遍历单词数组,累加统计每个单词数量。(可遍历到第一个单词作为当前统计对象,之后每遍历到相同单词,就将对应变量计数+1,并将该单词字符串置0)。

思路:可先用fopen打开文件流,之后用fgets把全文读出到字符串变量。

之后两个选择:

1、直接变量字符串,遇字母作为一个单词开始,遇非字母作为一个字母结束,这样把所有单词,拆出来放到字符串数组中。(大小写转换可同时进行)。

2、变量字符串将所有标点符号全部替换成空格,再用fprintf写入覆盖原文件,再用循环fscanf(返回-1表示读取结束),将所有以空格间隔的单词直接读取到字符串数组。

最后变量字符串数组。

更多追问追答
追问
因为是按照单词的长度来统计,还有单词hello和world一样是5个字母
追答
不矛盾,如只按长度统计,前面一样,得到数组后,循环遍历按长度统计即可。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式