字串之統計母音
Problem E: 統計母音
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
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
int main()
{
int a,b,c,d,e,n,m,j,i;
char str[100];
scanf("%d\n",&m);
for(j=1; j<=m; j++)
{
{
gets(str);
a=0;
b=0;
c=0;
d=0;
e=0;
n=strlen(str);
for(i=0;i<=n-1; i++)
{
if(str[i]=='a')
a++;
else if(str[i]=='e')
b++;
elseif(str[i]=='i')
c++;
elseif(str[i]=='o')
d++;
elseif(str[i]=='u')
e++;
}
cout<<"a:"<<a<<'\n'<<"e:"<<b<<'\n'<<"i:"<<c<<'\n'<<"o:"<<d<<'\n'<<"u:"<<e<<endl;
if(j<m) cout<<endl;
}
}
return 0;
}
題目要就統計母音的個數,其實就是查詢字串中幾個特殊字元的個數;
為了對每個字元進行比較,需要求出字串的長度,別忘了加所需的標頭檔案(#include<cstring>),為了消除空格的影響,用gets輸入字串,還有引用C語言的標頭檔案(#include<stdio.h>);
迴圈輸入固定的n組資料,需要先輸入一個數字(scanf("%d\n",&m);),然後用迴圈語句控制輸入的次數(for(j=1;j<=m; j++));
定義四個變數,賦初值為0,且在輸入迴圈之內,在統計迴圈之外,否則,每次每次統計的結果不清零會累加或者在統計迴圈之內只能得到最後一次迴圈統計的結果;
求出字串長度(n=strlen(str);),並在長度之內迴圈進行統計(for(i=0;i<=n-1; i++));注意,字元陣列中下標從0開始,if語句中相等時雙等號;
按照要求,除了最後一次輸入的測試以外(if(j<m)),每次結果後面都有一個空行(cout<<endl;); 迴圈一次,輸出一次結果(cout<<"a:"<<a<<'\n'<<"e:"<<b<<'\n'<<"i:"<<c<<'\n'<<"o:"<<d<<'\n'<<"u:"<<e<<endl;)。