sdut1250 统计元音

一句话题解:随便搞。用5个变量记录每个串的aeiou的出现次数就好。不过一定要注意卡回车,最后一行输出是没有回车的。(详细题解请查看全文)

原题地址在这里


Problem Description

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

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

算法真的没有什么好讲的,就是各种被回车搞的pe。做ACM题与做OI题不一样,多余的行末空格,文末回车都可能会导致错误,而这个错误在OI时一般是忽略掉的。

附AC代码:

#include <iostream>    
#include <cstdio>
#include <string>
using namespace std;

int n;
string s;

int main() {
    ios::sync_with_stdio(false);
    cin >> n;
    if (n != 0) {
        n++;
        while (n--) {
            s.clear();
            getline(cin, s);
            if (s == "")
                continue;
            else {
                int l = s.length();
                int a = 0, e = 0, i = 0, o = 0, u = 0;
                for (int j = 0; j < l; j++) {
                    switch (s[j]) {
                    case 'a':
                        a++; break;
                    case 'e':
                        e++; break;
                    case 'i':
                        i++; break;
                    case 'o':
                        o++; break;
                    case 'u':
                        u++; break;
                    default:
                        break;
                    }
                }
                printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n", a, e, i, o, u);
                if (n != 0)
                    printf("\n");
            }
        }
    }
    system("pause");
    return 0;
}

-------------本文结束,感谢您的阅读转载请注明原作者及出处-------------

知识无价,码字不易。对您有用,敬请打赏。金额随意,感谢关心。