百度校园招聘的一道面试题

功能:
在以‘/0’结尾的字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。不能用strlen之类的库函数。
 #include #include #include int maxContinuNum(char *inputstr, char **outputstr) { char *mStr; char ch; int maxLen ,len ; if(inputstr[0] == '/0') return 0; maxLen = len = 0; while(*inputstr != '/0') { ch = *inputstr; if(ch <= '9' && ch >= '0' ) { len = 0; do { ch = *inputstr; if( !(ch <= '9' && ch >= '0') ) break; len ++; inputstr++; }while(*inputstr != '/0'); if(len > maxLen ) { maxLen = len ; mStr = inputstr - len ; } inputstr --; } inputstr ++; } printf("%d /n", maxLen); *outputstr = mStr; for(int i = 0; i < maxLen; i++) { printf("%c", *mStr++); } return maxLen; } int main() { char *str = (char *)malloc(100*sizeof(char)); char *str2 = (char *)malloc(100*sizeof(char)); int len; memset(str, 0, 100*sizeof(char)); memset(str2, 0, 100*sizeof(char)); char **str3 = &str2; while(gets(str)) { len = maxContinuNum(str, str3); for(int i = 0 ; i < len ; i ++) { printf("%c", *str2++); } } return 0; }

你可能感兴趣的:(百度校园招聘的一道面试题)