输入一个英语句子,将句中单词按照出现次数从多到少输出。
按照map的第二操作数进行排序。
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
using namespace std;
int main()
{
string s,s1,s2;
map<string,int> mmap;
cout<<"请输入句子:"<<endl;
while(cin>>s)
{
//getline(cin,s,'\n');
if(s=="#")
break;
int k=0;
for(int i=0;i!=s.length();++i)
{
if(s[i]==',')
{
s1=s.substr(0,i);//表示从字符串s中抽取从0下标开始的指定数目i的字符串给s1
s2=s.substr(i+1,s.length());
//cout<<s1<<" sss "<<s2<<endl;
mmap[s1]++;
mmap[s2]++;
k=1;
}
if(s[i]=='.')
{
s1=s.substr(0,i);
//7cout<<s1<<" fff "<<s2<<endl;
mmap[s1]++;
k=2;
}
}
if(k==0)
mmap[s]++