#include <stdio.h>
#define IS_UPPER(_ch_) (_ch_ >= 'A' && _ch_ <= 'Z')
#define IS_LOWER(_ch_) (_ch_ >= 'a' && _ch_ <= 'z')
#define IS_DIGIT(_ch_) (_ch_ >= '0' && _ch_ <= '9')
#define F_UPPER 'U'
#define F_LOWER 'l'
#define F_DIGIT 'D'
int main()
{
char *str = "1234helloILOVE123ONEtwoone";
char *p = str;
int max = 0,counter = 0,flag = 0;
for(; '\0' != *p; p ++, counter ++)
{
if ( IS_UPPER(*p))
{
if( F_UPPER != flag)
{
max = max > counter ? max : counter;
counter = 0;
}
flag = F_UPPER;
}
else if (IS_LOWER(*p))
{
if ( F_LOWER != flag )
{
max = max > counter ? max : counter;
counter = 0;
}
flag = F_LOWER;
}
else if (IS_DIGIT(*p))
{
if ( F_DIGIT != flag )
{
max = max > counter ? max : counter;
counter = 0;
}
flag = F_DIGIT;
}
}
max = max > counter ? max : counter;
printf("max = %d\n", max);
return 0;
}