求"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; }