1;首先使用getline()输入一行字符串;
2:以空格为分隔符,将字符串进行分割并存放在vector中;
3:建立一个map(string,int),将vector中元素放入map中,以string作为键,每次出现一个就加一,则与键对应的值就是单词出现的频率;
4:输出,每个单词及其出现的次数;
// 统计单词出现的频率.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<sstream>
#include<map>
using namespace std;
int main()
{
string str;
while (getline(cin, str))
{
stringstream ss(str);
string s;
vector<string>vt;
while (getline(ss, s, ' '))
{
vt.push_back(s);
}
map<string,int>m1;
for (int i = 0; i < vt.size(); i++)
{
m1[vt[i]] += 1;
}
map<string, int>::iterator it;
cout << "字符串单词总个数 : " << vt.size() << endl;
cout << "不同单词的个数 : " << m1.size() << endl;
cout << "不同单词出现的频率 :" << endl;
for (it = m1.begin(); it != m1.end(); it++)
{
cout << it->first << ":" << it->second << endl;
}
}
return 0;
}