c语言编写一个函数,计算字符串 s中最大连续相同的字符个数。例如,若s 为"aaabbbb",则返回值为4;若s为"abcde",则返回值为1。
时间: 2024-03-06 08:47:05 浏览: 88
好的,以下是符合您要求的 C 语言代码:
```c
#include <stdio.h>
int max_consecutive_chars(char* s) {
int max_count = 1;
int curr_count = 1;
for (int i = 1; s[i] != '\0'; i++) {
if (s[i] == s[i-1]) {
curr_count++;
} else {
max_count = (curr_count > max_count) ? curr_count : max_count;
curr_count = 1;
}
}
return (curr_count > max_count) ? curr_count : max_count;
}
int main() {
char s1[] = "aaabbbb";
char s2[] = "abcde";
printf("%d\n", max_consecutive_chars(s1)); // 输出 4
printf("%d\n", max_consecutive_chars(s2)); // 输出 1
return 0;
}
```
这个函数和 Python 版本的思路基本相同,只是使用了 C 语言的语法。我们使用一个 `max_count` 变量来记录当前出现的最大连续字符数,以及一个 `curr_count` 变量来记录当前正在统计的连续字符数。我们遍历整个字符串,如果当前字符与前一个字符相同,那么 `curr_count` 就加 1;否则,我们需要更新 `max_count` 的值,并将 `curr_count` 重置为 1。最后,我们需要将 `max_count` 和 `curr_count` 中的较大值返回作为结果。
需要注意的是,C 语言中的字符串是以 null 结尾的字符数组,因此我们需要在遍历字符串时检查当前字符是否为 null,以避免访问越界。
阅读全文