明显的是可以利用上一步的拉丁猪蚊子游戏进行处理,代码如下:
1,统计元音出现的次数:
#include <iostream>
#include <string>
#include <set>
using namespace std;
int main(int argc, char const *argv[])
{
set<int> vowel;
vowel.insert('a');
vowel.insert('e');
vowel.insert('i');
vowel.insert('o');
vowel.insert('u');
vowel.insert('A');
vowel.insert('E');
vowel.insert('I');
vowel.insert('O');
vowel.insert('U');
string str; cin>>str;
int n = 0;
string::iterator rIt ;
for (rIt = str.begin(); rIt != str.end(); ++rIt)
{
if (vowel.find(*rIt) != vowel.end())
{
n++;
}
}
cout<<n;
return 0;
}
2,统计每一个元音出现的次数:
这样子的话就需要使用map,给它初始化每一个字符为0,剩下每一次查找倒之后给它增加一:
#include <iostream>
#include <string>
#include <map>
using namespace std;
int main(int argc, char const *argv[])
{
std::map<char, int> vowelmap;
vowelmap.insert(make_pair('a',0));
vowelmap.insert(make_pair('e',0));
vowelmap.insert(make_pair('i',0));
vowelmap.insert(make_pair('o',0));
vowelmap.insert(make_pair('u',0));
map<char ,int >::iterator mapiter;
string str; cin>>str;
int n = 0;
string::iterator rIt ;
for (rIt = str.begin(); rIt != str.end(); ++rIt)
if ( (mapiter = vowelmap.find(*rIt) )!= vowelmap.end())
mapiter->second++;
for (mapiter = vowelmap.begin(); mapiter != vowelmap.end(); ++mapiter)
cout<<mapiter->first<<" "<<mapiter->second<<endl;
return 0;
}
这样子就可以了,这个中间使用了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的函数
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的函数