①目标
统计字符串中各元音字母的个数
AEIOU,aeiou。不分大小写
~
②命令行
#include< stdlib.h>
#include< stdio.h>
~
③定义函数
void fun(char *s,int num[5])
/*元音字母有5个,故定义有5个元素的整型数组num[5]用于计数)*/
{int k,i=5;
for(k=0;k<i;k )num[k]=0;
/*数组num[5]的5个元素全部初始化,赋值为0,即从0开始计数。
此处不用num[i]=0,而另选字母num[k]=0,是为了规避元素越界,i=5,但下标01234,没有num[5]这个元素。*/
for(;*s;s )
/*遍历指针s所指字符串的所有字符,如果遇到元音字母,就执行下面的switch语句*/
{i=-1;
/*i=-1,没有num[-1]元素,表示不满足case情况,不是元音字母*/
switch(*s)
{case'a':case'A':{i=0;break;}
/*遇到元音字母a或A,存入数组元素num[0]中,从0开始,配合num[i] ,完成计数*/
case'e':case'E':{i=1;break;}
/*遇到元音字母e或E,存入数组元素num[1]中,从0开始,配合num[i] ,完成计数*/
case'i':case'I':{i=2;break;}
/*遇到元音字母i或L,存入数组元素num[2]中,从0开始,配合num[i] ,完成计数*/
case'o':case'O':{i=3;break;}
/*遇到元音字母o或O,存入数组元素num[3]中,从0开始,配合num[i] ,完成计数*/
case'u':case'U':{i=4;break;}
/*遇到元音字母u或U,存入数组元素num[4]中,从0开始,配合num[i] ,完成计数*/
}
if(i>=0)num[i] ;
}
}
~
④主函数(调用)
void main()
{char s1[100];int num[5],i;
printf("\nplease enter a string: ");
gets(s1);
/*利用字符数组s1储存字符串,空间留大一点100。
利用整型数组num[5]统计元音字母个数*/
fun(s1,num1);
/*利用fun函数,统计s1中储存字符串的元音字母个数num1*/
for(i=0;i<5;i )
printf("%d",num1[i]);
printf("\n");
}
,