用c语言统计输入的一串字符中每个元音字母(a,e,i,o,u)出现的次数, 当输入#时结束
时间: 2023-05-23 17:01:35 浏览: 56
一串字符时,代码应如何实现?
可以设计一个函数,接收一个字符串作为参数,返回每个元音字母出现的次数。可以使用一个计数器数组来记录每个元音字母出现的次数。在循环遍历字符串的过程中,每当遇到一个元音字母,就将对应计数器数组的值加一。最后,函数返回计数器数组即可。一个简单的实现示例代码如下:
```c
#include <stdio.h>
#include <string.h>
int* count_vowels(const char* str) {
static int counts[5] = {0}; // 记录每个元音字母出现的次数
for (int i = 0; i < strlen(str); i++) {
char c = str[i];
switch (c) {
case 'a':
counts[0]++;
break;
case 'e':
counts[1]++;
break;
case 'i':
counts[2]++;
break;
case 'o':
counts[3]++;
break;
case 'u':
counts[4]++;
break;
default:
break;
}
}
return counts;
}
int main() {
char str[100];
printf("请输入一串字符:");
scanf("%s", str);
int* counts = count_vowels(str);
printf("a: %d\n", counts[0]);
printf("e: %d\n", counts[1]);
printf("i: %d\n", counts[2]);
printf("o: %d\n", counts[3]);
printf("u: %d\n", counts[4]);
return 0;
}
```
在这个示例代码中,`count_vowels`函数返回一个静态数组指针,指向存储每个元音字母出现次数的计数器数组。这个数组的定义方式为`static int counts[5] = {0}`,表示数组是静态的,函数返回后数组仍然有效,初始值都为0。遍历字符串的过程中,使用了switch语句来区分每个元音字母,并将对应计数器值加一。最后,函数返回counts数组指针。在main函数中,需要输入一串字符,并将计数器数组输出。