試寫一個函式,計算字串 s中最大連續相同的字元個數。例如,若s 為"aaabbbb",則返回值為4;若s為"abcde",則返回值為1。
函式原型:int max_same_char( char s)
/**
* file name:ConstanChar_Count.c
* author : liaojx2016@126.com
* date : 2024-04-08
* function : Count the max of constant char num
* note : None
* CopyRight (c) 2024 liaojx2016@126.com Right Reseverd
*
**/
#include <stdio.h>
#include<string.h>
/**
*
* func name : max_same_char
* function : Count max of string's constant char num
* parameter :
* @p :Address pointed to a string
* Return val : maxinum of string's constant char num
* note : None
* author : liaojx2016@126.com
* date : 2024-04-08
* version : V1.0
* modify history : None
*
**/
int max_same_char( char *p )
{
int cnt=1; //記錄連續字元數量
int max=1; //記錄連續字元數量最大值
//遍歷字串
while(*p) {
if(*p==*(p+1)) {
//此時當前字元與下一個字元相同,字元數量+1
cnt++;
}
else {
//此時當前字元與下一個字元不相同,比較 cnt與 max,並將較大值賦給 max
max = (max<cnt)? cnt:max;
//比較完成之後cnt重新開始計數
cnt=1;
}
p++; //地址偏移
}
return max;
}
int main(int argc, char const *argv[])
{
char*p="fghfghddddddddfghjdd";
//scanf("%s",p);
printf("the string length is %d\n",strlen(p));
printf("the constant same char num max is %d\n",max_same_char(p));
return 0;
}