【刷题】统计每个元音字母在字符串中出现的次数【2】
一、题目
1.题目描述
题目:统计每个元音字母在字符串中出现的次数 输入:输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串 输出:
示例 :
二、解题报告
1.思路分析
2.代码详解
C++👇
#include<iostream>
using namespace std;
int main(){
int m;
char s[1000];
scanf("%d",&m);
gets(s);
for (int t=0;t<m;t++){
gets(s);
int k=0;
int a,e,i,o,u;
a=0;
e=0;
i=0;
o=0;
u=0;
while (s[k]!='\0'){
switch(s[k]){
case 'a':
a++;
break;
case 'e':
e++;
break;
case 'i':
i++;
break;
case 'o':
o++;
break;
case 'u':
u++;
break;
default:
break;
}
k++;
}
if(t!=m-1){printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n\n",a,e,i,o,u) ;
}else{
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n",a,e,i,o,u) ;
}
}
}
3.注意事项C++
- 输入测试是字符串,而且输入是带有空格的句子
要用C++的内置函数gets()进行输入,gets()可以无限读取,以回车结束读取。这里如果还用scanf输入,它会读完一个单词后就进行后面的循环计数,不ok。注意对于输入完样例次数后的那个回车,gets会将它作为输入,所以要多加一个gets吸收这个回车 - 字符串初始化char s[1000]
- 判断句子结束用 最后一个字符=‘\0’
- 输出格式
之前多次测试实例有一个空行隔开【需要两个\n】,最后一次没有空行【只是一个\n】 - switch里面的break记得加
|