写一个C++函数用于统计字符串中所有英文字母中的各元音字母个数,并进行测试

速度啊~~谢谢... 速度啊~~谢谢 展开
 我来答
wanghua1125
2009-01-11 · 超过12用户采纳过TA的回答
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void main()
{
string str;
cout<<"请输入要判断的字符串:\n";
char buf[] = {'A', 'E', 'I', 'O', 'U'};
getline(cin, str, '\n'); //得到输入

transform(str.begin(), str.end(), str.begin(), toupper); //将所有字符转换成大写

const int size = sizeof(buf); //计算元音字母个数
unsigned long Count[size]; //用于存储对应元音字母的个数

int i,j;
for(i=0; i<size; i++)
Count[i]=0;
for(i=0; i<sizeof(buf); i++)
{
for(j=0; j<str.size(); j++)
{
if (str[j] == buf[i])
{
Count[i]++;
}
}
}

for(i=0; i<size; i++)
{
cout<<"元音字母 "<<(char)buf[i]<<" 的个数为:"<<Count[i]<<endl;
}
}
二美知1G
2009-01-11 · TA获得超过273个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:110万
展开全部
#include <iostream>
#include <string>
using namespace std;
void func(string s,int a[]);
int main()
{
string str = "AVERWT245537-+-QWabceeiouafdagfalldhgahg";
int a[5] = {0};

func(str,a);

cout<<"a/A times: "<<a[0]<<endl;
cout<<"e/E times: "<<a[1]<<endl;
cout<<"i/I times: "<<a[2]<<endl;
cout<<"o/O times: "<<a[3]<<endl;
cout<<"u/U times: "<<a[4]<<endl;

return 0;
}

void func(string s,int a[])
{

int i = 0;
while (i < s.length())
{
if (isalpha(s[i]))
{
switch (s[i])
{
case 'a':
case 'A':
++a[0];
break;
case 'e':
case 'E':
++a[1];
break;
case 'i':
case 'I':
++a[2];
break;
case 'o':
case 'O':
++a[3];
break;
case 'u':
case 'U':
++a[4];
break;

}
}

++i;
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式