/* * 写一个函数,它的原型是int continummax(char *outputstr,char *inputstr) * 功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长 * 数字串赋给其中一个函数参数outputstr所指内存.例如:"abcd12345ed125ss123456789" * 的首地址传给inputstr后,函数将返回9,outputstr所指的值为123456789 */ #include<stdio.h> #include<stdlib.h> #include<string.h> int continummax(char *outputstr,char *inputstr) { //当前的连续数字个数 int count=0; //字符串中连续数字个数的最大值 int max=0; //保存取得最大值的指针 char *m; char *s=inputstr; int i=0; while(*s!='\0') { if(*s>='0'&&*s<='9') { count++; } else { if(count>max) { max=count; m=s-max; } count=0; } s++; } //有可能字符串末尾取到最大值 if(count>max) { max=count; m=s-max; } while(i<max) { *outputstr=*(m+i); outputstr++; i++; } *outputstr='\0'; return max; } int main() { char *inputstr="abcd12345ed125ss123456789"; char *outputstr=(char *)malloc(strlen(inputstr)+1); int result=continummax(outputstr,inputstr); printf("result=%d\n",result); printf("最长连续数字串=%s\n",outputstr); return 0; }