-直接代码
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int MAXN = 100;
class wordtype{ //单词类
public:
string word; //单词
int count; //数量
};
int getwords(wordtype *words) //单词搜索模块函数
{
string filename;
cout<<"请输入文件名(txt):"<<endl;
cin>>filename;
ifstream in(filename.c_str());//打开文件
if(!in) {
cout<<"文件打开错误!"<<endl;
return 1;
}
int n=0, m;
string word;
while(in) {
in>>word; //读单词
if(!in) { //文件结尾时退出循环
break;
}
bool flag = false;
for(m=0;m<n;m++)
{
if(word==words[m].word) { //已存在该单词
words[m].count++; //原有单词计数加1
flag=true;
break;
}
}
if(!flag) { //发现新单词
words[m].count=1; //新单词计数为1
words[m].word=word; //保存新单词
n++; //总单词计数加1
}
}
in.close(); //关闭文件
return n; //返回单词个数
}
int main() //主函数
{
string s;
wordtype words[MAXN] = {"",0}; //单词对象变量定义与初始化
int n=getwords(words); //调用获取单词的函数
cout<<"英文单词统计结果如下:"<<endl;
for(int m=0;m<n;m++)
{
cout<<words[m].word<<':'<<words[m].count<<endl;
}
cout<<"搜索出共"<<n<<"个单词。"<<endl;
return 0;
}