求教单词频度统计问题
对于用户给定的一篇英文文章(以文件txt形式提供),统计其中每个不同单词出现的次数(忽略大小写区别;忽略所有的非英文字母字符,即可以把所有的非字母字符当作空格看待,对于连字符'-',可以把连接的两个部分看成是一个单词,输出时也要输出‘-’,实际上就是把‘-’当成英文字母看待即可),把所有的英文单词按字典顺序输出,并输出每个单词出现的次数(一行上输出一个单词及出现次数)。输出结果应为文件。
提示:
(1)使用fopen打开文件时第二个参数最好使用"rt",即以文本文件方式打开并读取。
(2)如果使用fscanf或者fgetc读取文件,遇到文件末尾时返回值为EOF;使用fgets读取,则当遇到文件末尾时返回NULL。
可否请大神们按照此要求,给一个可以再VC和DEVc++上通过的源代码
一定要源代码供参考啊·····
[解决办法]
尝试着自己写一些,写不出来再看看别人写的代码。这样对知识才能够更好地吸收。
[解决办法]
用STL中的map可以很轻松地解决此类问题。
[解决办法]
#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();}