码迷,mamicode.com
首页 > 编程语言 > 详细

C++ STL map A1071 Speech Patterns(25) (注意如何从字符串里 分割出单词,注意读取整行带空格的string 需要使用 getlint(cin,str) 函数)

时间:2020-01-17 00:23:47      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:while   etl   ring   函数   col   字母转   end   最大   pause   

技术图片

 

 

#include <bits/stdc++.h>
#include<math.h>
#include <string>
using namespace std;
const int maxn = 40010;//最大学生人数
bool check(char c){
    if(c >= 0 && c<= 9) return true;
    if(c >= A && c<= Z) return true;
    if(c >= a && c<= z) return true;
    return false; 
}
int main(){
    map<string,int> count;//count计数字符串出现的次数
    string str;
    getline(cin,str);
    int i = 0;
    while(i < str.length()){
        string word;
        while(i < str.length() && check(str[i]) == true){//如果是单词的字符
            if(str[i] >= A && str[i] <= Z){
                str[i] += 32;//将大写字母转化为小写字母
            }
            word += str[i];
            i++;
        }
        if(word != ""){
            if(count.find(word) == count.end()){
                count[word]  = 1;
            }else{
                count[word]++;
            }
        }
        while(i < str.length() && check(str[i])==false){
            i++;
        }
    }
    string ans;//存放出现次数最多的单词
    int MAX = 0;
    for(map<string,int>::iterator it = count.begin();it != count.end();++it){
        if(it->second > MAX){
            MAX = it->second;
            ans = it->first;
        }
    }
    cout<<ans<<" "<<MAX<<endl;
    system("pause");
    return 0;
} 

C++ STL map A1071 Speech Patterns(25) (注意如何从字符串里 分割出单词,注意读取整行带空格的string 需要使用 getlint(cin,str) 函数)

标签:while   etl   ring   函数   col   字母转   end   最大   pause   

原文地址:https://www.cnblogs.com/JasonPeng1/p/12203521.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!