统计每个元音字母在字符串中出现的次数。

CLICK HERE TO HAVE A TRY
Time limit1000 ms
Memory limit32768 KB

原题:

统计每个元音字母在字符串中出现的次数。

Input

输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串。

Output
对于每个测试实例输出5行,格式如下:

a:num1
e:num2
i:num3
o:num4
u:num5
多个测试实例之间由一个空行隔开。

请特别注意:最后一块输出后面没有空行:)
Sample Input

2
aeiou
my name is ignatius

Sample Output

a:1
e:1
i:1
o:1
u:1

a:2
e:1
i:3
o:0
u:1

问题分析:

定义一个足够大的数组,把输入的字符串放进里面(包括空格),把一行里的字符(包括空格)是元音个数分别输出。

错误分析:

本人困在了如何让系统接受一整行作为输入的问题里,想了好久,提交错了好多,快崩溃了,才被同学指点,加了"n- -",加了这个就可以在首先输入组数的情况下,在程序里输入完两个例子之后就结束程序,这真是最关键的点之一了,其次利用**cin.getline(a,1000)来输入一整行也是关键点,还要注意getchar()**的用法!!!!!
不懂的自行百度,不谢…

别说话,再做一次!!!!

VS通过的代码如下:

#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
int main()
{
	char a[1000];
	int i, k, n, b[5];
	cin >> n;
	getchar();
	while (cin.getline(a, 1000)&&n--)
	{
		k = strlen(a);
		for (i = 0;i < 5;i++)
			b[i] = 0;
		for (i = 0;i < k;i++)
		{
			if (a[i] == 'a')
				b[0]++;
			else if (a[i] == 'e')
				b[1]++;
			else if (a[i] == 'i')
				b[2]++;
			else if (a[i] == 'o')
				b[3]++;
			else if (a[i] == 'u')
				b[4]++;
		}
		printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n", b[0], b[1], b[2], b[3], b[4]);
		if (n != 0)
			printf("\n");
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_43697280/article/details/84932791
今日推荐