写一个函数,它的原形是:
int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:
"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789。
注意很多答案是错的,未考虑末尾不是字母的情况!
int countintmax(char* input, char* output) { int max_len = 0; int max_start = 0; int len = 0; char* ptr = input; while(*ptr!='int countintmax(char* input, char* output) { int max_len = 0; int max_start = 0; int len = 0; char* ptr = input; while(*ptr!='\0') { if(*ptr>='0' && *ptr<='9') { len++; }else { if(len>max_len) { max_len = len; max_start = ptr-input-len; } len = 0; } ptr++; } // Last may be 0~9, then not judeged len if(len>max_len) { max_len = len; max_start = ptr-input-len; } if(max_len!=0) { memcpy(output, &input[max_start], max_len); output[max_len] = '\0'; } return max_len; } int main() { char* str = "abcd12345ed125ss123456789"; // 9 123456789 char buf[1024]; printf("%s\n%d %s\n", str, countintmax(str, buf), buf); return 0; }') { if(*ptr>='0' && *ptr<='9') { len++; }else { if(len>max_len) { max_len = len; max_start = ptr-input-len; } len = 0; } ptr++; } // Last may be 0~9, then not judeged len if(len>max_len) { max_len = len; max_start = ptr-input-len; } if(max_len!=0) { memcpy(output, &input[max_start], max_len); output[max_len] = 'int countintmax(char* input, char* output) { int max_len = 0; int max_start = 0; int len = 0; char* ptr = input; while(*ptr!='\0') { if(*ptr>='0' && *ptr<='9') { len++; }else { if(len>max_len) { max_len = len; max_start = ptr-input-len; } len = 0; } ptr++; } // Last may be 0~9, then not judeged len if(len>max_len) { max_len = len; max_start = ptr-input-len; } if(max_len!=0) { memcpy(output, &input[max_start], max_len); output[max_len] = '\0'; } return max_len; } int main() { char* str = "abcd12345ed125ss123456789"; // 9 123456789 char buf[1024]; printf("%s\n%d %s\n", str, countintmax(str, buf), buf); return 0; }'; } return max_len; } int main() { char* str = "abcd12345ed125ss123456789"; // 9 123456789 char buf[1024]; printf("%s\n%d %s\n", str, countintmax(str, buf), buf); return 0; }