请编写一个函数 int fun(char *ss,charo),该西数的功能是:求出ss字符串中指定宇符串。 的个数,并返回此值。 例如,若输入 ss="1231231",c=工',则输出 了。 #include <stdio.h> #define M 81 int fun(char *ss, char c) void main) { char a[M], ch; printf("InPlease enter a string:"); gets(a); print("InPlease enter a char:"); ch = getchar; printf(In The number of the char is: %dln", fun(a, ch));
时间: 2023-11-27 12:54:22 浏览: 73
这里提供一个参考的解法:
```c
#include <stdio.h>
int fun(char *ss, char c) {
int count = 0;
while (*ss != '\0') {
if (*ss == c) {
count++;
}
ss++;
}
return count;
}
int main() {
char a[81], ch;
printf("Please enter a string: ");
gets(a);
printf("Please enter a char: ");
ch = getchar();
printf("The number of the char is: %d\n", fun(a, ch));
return 0;
}
```
解释:
1. 定义了一个函数 `fun`,输入参数为一个字符串指针 `ss` 和一个字符 `c`,返回值为整型。
2. 在 `fun` 函数中,遍历字符串 `ss`,如果当前字符等于 `c`,则计数器加一。
3. 主函数中,输入一个字符串 `a` 和一个字符 `ch`,调用函数 `fun` 求出字符串中指定字符的个数,并输出结果。
需要注意的是,由于 `gets` 函数存在安全漏洞,容易受到缓冲区溢出攻击,不建议在实际开发中使用。可以使用 `fgets` 函数代替,例如:
```c
fgets(a, 81, stdin);
```
其中,`stdin` 表示从标准输入中读取数据,`81` 表示最多读取 81 个字符(包括换行符和字符串结尾符)。
阅读全文