c语言基础题 统计每个元音字母在字符串中出现的次数

输入:
2
aeiou
my name is ignatius
输出:
a:1
e:1
i:1
o:1
u:1

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

各位高手帮我看看哪里错了?
#include<stdio.h>
#include<string.h>
char a[100];
int i,j,n,as,es,is,os,us,num=0;
main()
{
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
as=es=is=os=us=0;
gets(a);
j=strlen(a);
printf("%d",j);
for(j=0;;j++)
{
if(a[j]=='\n') break;
if(a[j]=='a') {as++;}
else if(a[j]=='e') {es++;}
else if(a[j]=='i') {is++;}
else if(a[j]=='o') {os++;}
else if(a[j]=='u') {us++;}
else {num++;}
}
printf("a:%d\n",as);
printf("e:%d\n",es);
printf("i:%d\n",is);
printf("o:%d\n",os);
if(j==n-1){printf("u:%d\n",us);}
else{printf("u:%d\n\n",us);}
}
return 0;
}
printf("%d",j); 多输了

杯具啊,我搞了很久很久,就是没想到这个if(a[j]=='\n') break;
应该是if(a[j]=='\0') break;
结束符是'\0'看来我太粗心了,我就觉得奇怪,为什么我自己写了遍就可以正确显示,你的就不能!
温馨提示:答案为网友推荐,仅供参考
相似回答