试写一个函数,计算字符串 s中最大连续相同的字符个数。例如,若s 为“aaabbbb“,则返回值为4;若s为“abcde“,则返回值为1。

试写一个函数,计算字符串 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);
}

猜你喜欢

转载自blog.csdn.net/weixin_43793181/article/details/109628557