c语言|C语言-统计字符串中字母个数

c语言|C语言-统计字符串中字母个数


①目标
统计字符串中各元音字母的个数
AEIOUaeiou 。 不分大小写

②命令行
#include< stdlib.h>
【c语言|C语言-统计字符串中字母个数】#include< stdio.h>

③定义函数
void fun(char *sint num[5
)
/*元音字母有5个 , 故定义有5个元素的整型数组num[5
用于计数)*/
{int ki=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(\"\please enter a string: \");
gets(s1);
/*利用字符数组s1储存字符串 , 空间留大一点100 。
利用整型数组num[5
统计元音字母个数*/
fun(s1num1);
/*利用fun函数 , 统计s1中储存字符串的元音字母个数num1*/
for(i=0;i<5;i++)
printf(\"%d\"num1[i
);
printf(\"\\");