原帖见:
http://community.csdn.net/Expert/TopicView3.asp?id=5023839
题目:
输出每个单词出现的次数
比如:aaa,bbb,ccc,aaa,avc,aaa.
那么aaa为3,bbb为1.....
在输出时,还要将输入单词按首字母排列
解答:
回复人:du51(郁郁思扬) ( ) 信誉:100 2006-9-15 15:10:45 得分:0
/*------------------------------------*/
#include < iostream >
#include < string >
#include < vector >
#include < sstream >
#include < algorithm >
#include < functional >
#include < cctype >
#include < iterator >
using namespace std;
int main()
{
string test="aaa,bbb,ccc,aaa,avc,aaa.ccc wwwww www.csdn.net www.warcraft.com";
replace_if(test.begin(),test.end(),not1(ptr_fun(::isalpha)),' ');
istringstream ss(test);
vector<string> vec;
copy(istream_iterator<string>(ss),istream_iterator<string>(),back_inserter(vec));
sort(vec.begin(),vec.end());
for(vector<string>::iterator it=vec.begin(),start=vec.begin();it!=vec.end();start=it)
{
if((it=adjacent_find(start,vec.end(),not_equal_to<string>()))!=vec.end())++it;
cout<<*start<<" "<<distance(start,it)<<endl;
}
system("PAUSE");
return 0;
}
#include < iostream >
#include < string >
#include < vector >
#include < sstream >
#include < algorithm >
#include < functional >
#include < cctype >
#include < iterator >
using namespace std;
int main()
{
string test="aaa,bbb,ccc,aaa,avc,aaa.ccc wwwww www.csdn.net www.warcraft.com";
replace_if(test.begin(),test.end(),not1(ptr_fun(::isalpha)),' ');
istringstream ss(test);
vector<string> vec;
copy(istream_iterator<string>(ss),istream_iterator<string>(),back_inserter(vec));
sort(vec.begin(),vec.end());
for(vector<string>::iterator it=vec.begin(),start=vec.begin();it!=vec.end();start=it)
{
if((it=adjacent_find(start,vec.end(),not_equal_to<string>()))!=vec.end())++it;
cout<<*start<<" "<<distance(start,it)<<endl;
}
system("PAUSE");
return 0;
}