zoukankan      html  css  js  c++  java
  • 统计元音字母

            输入一个字符串,统计处其中元音字母的数量。更复杂点的话统计出每个元音字母的数量。
            明显的是可以利用上一步的拉丁猪蚊子游戏进行处理,代码如下:
    1,统计元音出现的次数:
    1. #include <iostream>
    2. #include <string>
    3. #include <set>
    4. using namespace std;
    5. int main(int argc, char const *argv[])
    6. {
    7. set<int> vowel;
    8. vowel.insert('a');
    9. vowel.insert('e');
    10. vowel.insert('i');
    11. vowel.insert('o');
    12. vowel.insert('u');
    13. vowel.insert('A');
    14. vowel.insert('E');
    15. vowel.insert('I');
    16. vowel.insert('O');
    17. vowel.insert('U');
    18. string str; cin>>str;
    19. int n = 0;
    20. string::iterator rIt ;
    21. for (rIt = str.begin(); rIt != str.end(); ++rIt)
    22. {
    23. if (vowel.find(*rIt) != vowel.end())
    24. {
    25. n++;
    26. }
    27. }
    28. cout<<n;
    29. return 0;
    30. }
    2,统计每一个元音出现的次数:
    这样子的话就需要使用map,给它初始化每一个字符为0,剩下每一次查找倒之后给它增加一:

    1. #include <iostream>
    2. #include <string>
    3. #include <map>
    4. using namespace std;
    5. int main(int argc, char const *argv[])
    6. {
    7. std::map<char, int> vowelmap;
    8. vowelmap.insert(make_pair('a',0));
    9. vowelmap.insert(make_pair('e',0));
    10. vowelmap.insert(make_pair('i',0));
    11. vowelmap.insert(make_pair('o',0));
    12. vowelmap.insert(make_pair('u',0));
    13. map<char ,int >::iterator mapiter;
    14. string str; cin>>str;
    15. int n = 0;
    16. string::iterator rIt ;
    17. for (rIt = str.begin(); rIt != str.end(); ++rIt)
    18. if ( (mapiter = vowelmap.find(*rIt) )!= vowelmap.end())
    19. mapiter->second++;
    20. for (mapiter = vowelmap.begin(); mapiter != vowelmap.end(); ++mapiter)
    21. cout<<mapiter->first<<" "<<mapiter->second<<endl;
    22. return 0;
    23. }

    这样子就可以了,这个中间使用了map容器,下面是使用方法
    C++ Maps是一种关联式容器,包含“关键字/值”对
          begin()          返回指向map头部的迭代器
          clear()         删除所有元素
          count()          返回指定元素出现的次数
          empty()          如果map为空则返回true
          end()            返回指向map末尾的迭代器
          equal_range()    返回特殊条目的迭代器对
          erase()          删除一个元素
          find()           查找一个元素
          get_allocator()  返回map的配置器
          insert()         插入元素
          key_comp()       返回比较元素key的函数
          lower_bound()    返回键值>=给定元素的第一个位置
          max_size()       返回可以容纳的最大元素个数
          rbegin()         返回一个指向map尾部的逆向迭代器
          rend()           返回一个指向map头部的逆向迭代器
          size()           返回map中元素的个数
          swap()            交换两个map
          upper_bound()     返回键值>给定元素的第一个位置
          value_comp()      返回比较元素value的函数






















  • 相关阅读:
    [SDOI2009]学校食堂Dining
    [SCOI2005]最大子矩阵
    [AHOI2009]中国象棋
    洛谷P1850 换教室(概率dp)
    洛谷[1007]梦美与线段树(线段树+概率期望)
    洛谷P3577 [POI2014]TUR-Tourism
    CF1045G AI robots(动态开点线段树)
    洛谷P4721 【模板】分治 FFT(分治FFT)
    洛谷P4726 【模板】多项式指数函数
    洛谷P4173 残缺的字符串(FFT)
  • 原文地址:https://www.cnblogs.com/clifff/p/5038995.html
Copyright © 2011-2022 走看看