UVa123

题目地址:点击打开链接

C++代码:

#include <iostream>
#include <set>
#include <map>
#include <string>
#include <cctype>
#include <cstdio>
using namespace std;
int main()
{
	set<string> ignore;
	string str;
	multimap<string,string> ssm;
	while(cin>>str&&str!="::")
		ignore.insert(str);
	getchar();
	while(getline(cin,str))
	{
		int i;
		for(i=0;i<str.size();++i)
			str[i]=tolower(str[i]);
		for(i=0;i<str.size();i++)
		{
			if(!isalpha(str[i]))
				continue;
			int j=i;
			while(j<str.size()&&isalpha(str[j]))
				++j;
			string key_str(str,i,j-i);
			if(!ignore.count(key_str))
			{
				for(int k=0;k<key_str.size();++k)
					key_str[k]=toupper(key_str[k]);
				string t(str);
				t.replace(i,j-i,key_str);
				ssm.insert(make_pair(key_str,t));
			}
			i=j;
		}
	}
	map<string,string>::const_iterator iter=ssm.begin();
	while(iter!=ssm.end())
	{
		cout<<iter->second<<endl;
		++iter;
	}
	return 0;
}


原文地址:https://www.cnblogs.com/fuhaots2009/p/3363768.html