if(str[i]==c)
m=m+1;
else
{
m=1;
c=str[i];
}
if(m>l)
l=m;
Пример программы:
#include "stdio.h"
int maxlen(char* str, int n)
// Функция находит наибольшую длину последовательности одинаковых символов
{
int i; // Текущий просматриваемый символ
int l; // Максимальное количество одинаковых символов среди просмотренных
int m; // Текущее количество подряд идущих символов
char c; // Последний встретившийся символ
l=1;
m=1;
c=str[0];
for(i=1; i<n; i=i+1)
{
if(str[i]==c)
m=m+1;
else
{
m=1;
c=str[i];
}
if(m>l)
l=m;
#ifdef DEBUG_MAXLEN
printf("i = %i, l= %i \n", i, l);
#endif
}
return l;
}
int main()
{
char str[3][12] = { "aabbbccdddd",
"aabbbbbccdd",
"aaaabbbccdd"};
int ans[3] = {4,5,4};
int a, i, n=3, m=12;
for(i=0;i<n;i++)
{
printf("Test%i\n",i);
printf("String - %s\n", str[i]);
a = maxlen(str[i], m-1);
printf("Maxlen=%4i ",a);
if (a==ans[i]) printf("test passed\n\n");
else printf("test failed\n\n");
}
}