Берем следующий элемент
++str
и проверяем, что он не равен нулю:
while(*(++str))
#include "stdio.h"
int maxlen(char* str)
// Функция находит наибольшую длину последовательности одинаковых символов
{
int l=1; // Максимальное количество одинаковых символов среди просмотренных
int m=1; // Текущее количество подряд идущих символов
char c=*str; // Последний встретившийся символ
while(*(++str))
{
if(*str==c)
m=m+1;
else
{
if(m>l) l=m;
m=1;
c=*str;
}
#ifdef DEBUG_MAXLEN
printf("i = %i, l= %i \n", i, l);
#endif
}
if(m>l) l=m;
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]);
printf("Maxlen=%4i ",a);
if (a==ans[i]) printf("test passed\n\n");
else printf("test failed\n\n");