数据结构(十)统计可显示字符的频数、重叠词汇量

1、统计可显示字符的频数

代码:

//统计可显示字符频数
#include<iostream>
#include<fstream>
#include<map>

using namespace std;
int main()
{
	ifstream infile("dictionary.txt",ios::in);
	map<char,int>wordCount;
	char asc; //
	while(infile>>asc)
	{
		if(isprint(asc))//宏定义,判断arc是否为可显示打印字符 
		wordCount[asc]++;
		
	}
	for(map<char,int>::iterator it=wordCount.begin();it!=wordCount.end();it++) //迭代器 
	{
		cout<<(it->first)<<" "<<(it->second)<<endl;
	}
	return 0;
}
 

结果:

2、重叠词汇量

代码:

//重叠词汇量
 
#include<fstream>
#include<iostream>
#include<string>
#include<map>
#include<string> 

using namespace std;
/*
//输出找到的单词
void printHighChange(const map<string,vector<string>>&adjacentWords,int minWords=15) 
{
	for(auto&entry:adjacentWords)
	{
		const vector<string>&words=entry.second;
		if(words.size()>=minWords)
		{
			cout<<entry.first<<"("<<words.size()<<"):";
			for(auto&str:words)
			 cout<<""<<str;
		cout<<endl;
		} 
	} 
}
*/
//重复词频统计
int RepeatCount(map<string,int>wordCount) 
{
	int  i;
    for(map<string,int>::iterator it=wordCount.begin();it!=wordCount.end();++it)
    {
    	if(it->second>=2) 
    	{
    		i++;
    	}
    }
    return i;
}
int main()
{
	ifstream infile("examAList.txt",ios::in);
	map<string,int>wordCount;
	string word;
	
	while(infile>>word)
	{
		++wordCount[word];
		
	}
	infile.close();
	ifstream ifile("examBList.txt",ios::in);
	while(infile>>word)
	{
		++wordCount[word];
	}
	
	cout<<RepeatCount(wordCount)<<endl;
	
	/*int i;
	map<string,int>wordCount;
	string word;
	while(cin>>word)
	++wordCount[word];
	
	cout<<"word:"<<(*it).first<<"\tcount:"<<(*it).second<<endl;
	*/
	return 0;
} 

结果:

猜你喜欢

转载自blog.csdn.net/RayMa0305/article/details/81558141