用c语言编写一个函数,统计由数字字符组成的字符串中,各数字字符出现次数的最大值。在主函数中定义并初始化字符串,调用函数,输出结果。要求自定义函数使用指针作为形参。例如,字符串为“110”,输出结果为2
时间: 2024-02-24 07:55:49 浏览: 25
好的,这是实现这个功能的代码:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int max_count(char *str);
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
printf("各数字字符出现次数的最大值为:%d\n", max_count(str));
return 0;
}
int max_count(char *str) {
int count[10] = { 0 }; // 用来记录每个数字字符出现的次数
int max = 0;
int len = strlen(str);
for (int i = 0; i < len; i++) {
if (isdigit(*(str + i))) { // 如果当前字符是数字字符
int num = *(str + i) - '0'; // 将字符转换成数字
count[num]++;
if (count[num] > max) {
max = count[num];
}
}
}
return max;
}
```
我们用 `max_count` 函数来统计由数字字符组成的字符串中,各数字字符出现次数的最大值。该函数接受一个指向字符串首字符的指针作为参数。在函数内部,我们定义了一个长度为 10 的整型数组 `count`,用来记录每个数字字符出现的次数。然后遍历字符串,如果当前字符是数字字符,就将其转换成数字,然后在 `count` 数组中对应数字的计数器加 1,并且更新最大值。
在 `main` 函数中,我们先输入一个字符串,然后调用 `max_count` 函数统计各数字字符出现次数的最大值,根据函数返回值输出结果。
注意,我们在 `max_count` 函数中使用了 `isdigit` 函数来判断当前字符是否是数字字符。这个函数需要包含头文件 `ctype.h`。我们在 `main` 函数中使用了 `%s` 格式符来读入一个字符串,这个字符串不需要加取地址符 `&`。在 C 语言中,数组名本身就是一个指向数组首元素的指针,因此可以直接传入。