首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求教单词频度统计有关问题

2012-04-12 
求教单词频度统计问题对于用户给定的一篇英文文章(以文件txt形式提供),统计其中每个不同单词出现的次数(忽

求教单词频度统计问题
对于用户给定的一篇英文文章(以文件txt形式提供),统计其中每个不同单词出现的次数(忽略大小写区别;忽略所有的非英文字母字符,即可以把所有的非字母字符当作空格看待,对于连字符'-',可以把连接的两个部分看成是一个单词,输出时也要输出‘-’,实际上就是把‘-’当成英文字母看待即可),把所有的英文单词按字典顺序输出,并输出每个单词出现的次数(一行上输出一个单词及出现次数)。输出结果应为文件。

提示:
(1)使用fopen打开文件时第二个参数最好使用"rt",即以文本文件方式打开并读取。
(2)如果使用fscanf或者fgetc读取文件,遇到文件末尾时返回值为EOF;使用fgets读取,则当遇到文件末尾时返回NULL。

可否请大神们按照此要求,给一个可以再VC和DEVc++上通过的源代码

一定要源代码供参考啊·····

[解决办法]
尝试着自己写一些,写不出来再看看别人写的代码。这样对知识才能够更好地吸收。
[解决办法]
用STL中的map可以很轻松地解决此类问题。
[解决办法]

探讨
用STL中的map可以很轻松地解决此类问题。

[解决办法]
底下的改改就能用的!具体还是参看C++ primer吧!
C/C++ code
#include <iostream>#include <fstream>#include <string>#include <map>using namespace std;void main(void)              {    ifstream input("d:\\1.txt");    string str;    map<string,int> string_count ;    while(input>>str){                ++string_count[str];    }        map<string,int>::iterator it=string_count.begin();        cout<<"字符串"<<"  "<<"出现次数"<<endl;    while(it!=string_count.end()){            cout<<it->first<<"     "<<it->second<<endl;        it++;    }    input.close();} 

热点排行