问题来源
问题描述
统计每个元音字母在字符串中出现的次数
输入
输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串。
输出
对于每个测试实例输出5行,格式如下:
a:num1
e:num2
i:num3
o:num4
u:num5
多个测试实例之间由一个空行隔开。
请特别注意:最后一块输出后面没有空行:)
例子
AC的代码
#include <iostream>
#include<string>
using namespace std;
int i,y,q[5];
int main()
{
string a,t;
char r[5] = { 'a','e','i','o','u' };
cin >> i;
getchar();
for (int j = 0; j < i; j++)
{
getline(cin,a);
a = a + '/';
while (a[y] != '/')
{
if (a[y] == 'a')
{
q[0]++;
}
if (a[y] == 'e')
{
q[1]++;
}
if (a[y] == 'i')
{
q[2]++;
}
if (a[y] == 'o')
{
q[3]++;
}
if (a[y] == 'u')
{
q[4]++;
}
y++;
}
if (j != (i - 1))
{
for (int g = 0; g < 5; g++)
{
cout << r[g] << ":" << q[g] << endl;
if (g == 4)
cout << endl;
}
}
else
{
for (int g = 0; g < 5; g++)
{
cout << r[g] << ":" << q[g] ;
cout << endl;
}
}
for (int o = 0; o < 5; o++)
{
q[o] = 0;
}
y = 0;
}
}
问题思路
用字符串a读取字符,在a后加“/”作标识符,while循环判断每个元音有多少个,按格式输出(注意每一次输出u后要空行最后不空行但可以换行),最后清0,继续下一次循环。