美文网首页
单词识别

单词识别

作者: HelloSam | 来源:发表于2020-04-02 14:17 被阅读0次

    #include<iostream>
    #include<cctype>
    #include<map>
    #include<string>
    using namespace std;
    
    int main()
    {
        map<string,int> mp;
        string s;
        getline(cin,s);
        int j=0;//定义在外面
        for(int i=0;i<s.size();i++)
        {
            if(s[i]>='A' && s[i]<='Z') s[i] = tolower(s[i]);//转小写
    
            if((s[i]>'a' && s[i]<'z') || (s[i]==' ' || s[i]==',' || s[i]=='.')) //只有s[i]是字母或特殊符号才操作
                if((s[i]==' ' || s[i]==',' || s[i]=='.'))//空格,逗号,句号
                {
                    if(mp.find(s.substr(j,i-j))==mp.end())//如果集合中没有这个字符串为key的元素,则加入
                        mp.insert(make_pair(s.substr(j,i-j),1));
                    else mp[s.substr(j,i-j)]++;
                    j = i+1;
                }
        }
    
        if(mp.find("")!=mp.end())//如果有一个字符加一个空格导致截取到空字符串这种情况
            mp.erase(mp.find(""));//那就删除这个空字符串,否则不用做处理
    
        for(map<string,int>::iterator it = mp.begin();it!=mp.end();it++)
        cout << it->first <<":"<<it->second<<"\n";
        return 0;
    }
    //有空字符放到map里面是因为有这种情况,streets. A,即'.'后面紧接着是空格
    

    相关文章

      网友评论

          本文标题:单词识别

          本文链接:https://www.haomeiwen.com/subject/zedxphtx.html