求"1234helloILOVE123ONEtwoone"中最大子字符串的个数?

#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;
}

 

posted @ 2013-10-08 19:01  阳光VS心情  阅读(204)  评论(0编辑  收藏  举报