统计元音字母

        输入一个字符串,统计处其中元音字母的数量。更复杂点的话统计出每个元音字母的数量。
        明显的是可以利用上一步的拉丁猪蚊子游戏进行处理,代码如下:
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的函数






















原文地址:https://www.cnblogs.com/clifff/p/5038995.html