关于C++处理文本汉字统计及字频的程序
发布网友
发布时间:2024-09-29 23:46
我来回答
共1个回答
热心网友
时间:2024-10-04 13:12
略加修改,使用STL的map容器
G++测试通过
#include<iostream>
#include<fstream>
#include <string>
#include <map>
#include <iterator>
using namespace std;
int main ()
{
ifstream is("input.txt");
char s[5000];
char c;
int i = 0;
int iChi=0;
while ( (c = is.get()) != EOF)
s[i++] = c;
s[i] = '\0';
map<string,int> counter;
for (i=0;s[i]!='\0';i++)
{
if (s[i] & 0X80)
{
string temp;
temp.push_back(s[i]);
temp.push_back(s[i+1]);
counter[temp]++;
iChi++;
i++;
}
else continue;
}
is.close();
cout<<"汉字总数:"<<iChi<<endl;
cout<<"字频:"<<endl;
map<string,int>::iterator iter;
for(iter=counter.begin();iter!=counter.end();iter++)
{
cout<<iter->first<<":"<<iter->second<<endl;
}
}