1.试写一个函数,计算字符串 s中最大连续相同的字符个数。例如,若s 为"aaabbbb",则返回值为4;若s为"abcde",则返回值为1。 函数原型:int max_same_char( char* s)
时间: 2024-10-12 08:15:09 浏览: 35
c代码-写一个函数,计算字符串 s中最大连续相同的字符个数。例如,若s 为"aaabbbb",则返回值为4;若s为"abcde",则返回值为1。int max_same_char( char* s)
这是一个简单的字符串处理问题,可以使用C语言编写一个函数来解决。下面是一个可能的解决方案:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
int max_same_char(char* s);
// 主函数演示如何调用
int main() {
char s[] = "aaabbbb";
int result = max_same_char(s);
printf("最长连续相同的字符个数: %d\n", result);
s[0] = 'a'; // 示例改变输入
result = max_same_char(s);
printf("新输入 (abcde): 最长连续相同的字符个数: %d\n", result);
return 0;
}
// 实现 max_same_char 函数
int max_same_char(char* s) {
if (s == NULL || *s == '\0') {
return 0; // 如果字符串为空或结束,则无相同字符
}
int maxLength = 1; // 初始化最大长度为第一个字符
int currentLength = 1;
for (int i = 1; s[i] != '\0'; i++) {
if (s[i] == s[i - 1]) { // 比较当前字符是否和前一个相同
currentLength++;
} else { // 不同,更新最大长度并从新开始计数
maxLength = max(maxLength, currentLength); // 使用max函数防止越界
currentLength = 1;
}
}
// 别忘了处理最后一个连续的字符
maxLength = max(maxLength, currentLength);
return maxLength;
}
// 辅助函数,用于找到两个整数的最大值
static int max(int a, int b) {
return a > b ? a : b;
}
```
这个程序会遍历输入的字符串,每次遇到相同的字符就增加当前连续字符的计数,直到遇到不同的字符为止。然后它会比较当前的最长连续长度与之前记录的最大长度,并更新结果。
阅读全文