用c语言编写函数int *count(char *ch_p),形参ch_p指向的字符若是大写字母则用对应的小写字母替换,并使用局部静态变量统计元音字母出现的次数,函数返回该局部静态变量的地址。 编写main函数,输入字符序列,调用count函数处理,并将统计结果保存到main函数的局部变量a中,输出变换后的字符序列及统计结果。
时间: 2023-12-03 21:45:22 浏览: 165
C语言 编写函数,由实参传来一个字符串,统计其中字母,数字空格,和其他字符的个数
5星 · 资源好评率100%
以下是代码实现:
```c
#include <stdio.h>
int *count(char *ch_p) {
static int cnt = 0; // 声明局部静态变量并初始化为0
while (*ch_p) { // 遍历字符序列
if (*ch_p >= 'A' && *ch_p <= 'Z') { // 如果是大写字母
*ch_p += 'a' - 'A'; // 转换为小写字母
}
if (*ch_p == 'a' || *ch_p == 'e' || *ch_p == 'i' || *ch_p == 'o' || *ch_p == 'u') {
cnt++; // 统计元音字母出现次数
}
ch_p++; // 指针后移
}
return &cnt; // 返回局部静态变量的地址
}
int main() {
char str[100];
int *a;
printf("请输入一个字符序列:");
scanf("%s", str);
a = count(str);
printf("变换后的字符序列为:%s\n", str);
printf("元音字母出现次数为:%d\n", *a);
return 0;
}
```
注意事项:
1. 在函数内部使用静态变量来统计元音字母出现次数,是为了保证每次调用该函数时,统计结果不会被重置为0。
2. 在返回局部静态变量的地址时,使用指针类型int *,而不是int,因为只有指针类型才能返回变量的地址。
阅读全文