试写一个函数,计算字符串 s中最大连续相同的字符个数。例如,若s 为"aaabbbb",则返回值为4;若s为"abcde",则返回值为1。
int max_same_char( char* s);
具体代码及解析如下:
#include <stdio.h>
#include <string.h>
int max_same_char( char* s) //相同字符出现次数
{
int sum = 0;
int max = 0;
for(int i = 0; s[i] !='\0'; i++) //循环遍历比较字符串每一个字符
{
for(int j = 0; s[j] !='\0';j++)
{
if((int)s[i] == (int)s[j]) //转型,比较各自对应的int值
{
sum++; //相等时sum++,记录每次循环对应字符出现的次数
}
}
if(sum > max) //比较字符出现最多的次数与此次循环对应字符出现的次数
{
max = sum; //记录字符串中字符出现最多的次数
}
sum = 0; //每次循环对应字符出现的次数清0
}
printf("%d\n",max); //遍历结束输出结果
}
int main( )
{
char s1[]="aaadddd";
max_same_char(s1);
}