您的位置:首页 > 其它

统计元音字母

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

}

[/code]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;

}

[/code]
这样子就可以了,这个中间使用了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的函数

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: