c语言从字符统计字母个数(C语言-统计字符串中字母个数)(1)

①目标

统计字符串中各元音字母的个数

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");

}

,