/* 第 25 题: 写一个函数,它的原形是 int continumax(char *outputstr,char *intputstr) 功能: 在字符串中找出连续最长的数字串,并把这个串的长度返回, 并把这个最长数字串付给其中一个函数参数 outputstr 所指内存。 例如:"abcd12345ed125ss123456789" 的首地址传给 intputstr 后,函数将返回 9, outputstr 所指的值为 123456789 */ #include<iostream> #include<stdio.h> using namespace std; int continumax(char *outputstr,char *inputstr) { int i,start,num,max; //printf("%s",inputstr); num=0; max=0; for(i=0;inputstr[i]!='\0';i++) { if(inputstr[i]>='0'&&inputstr[i]<='9') num++; else num=0; if(num>max) { max=num; start=i-max+1;//起始位置 } } for (i=0;i<max;i++) *outputstr++=inputstr[start++]; *outputstr='\0'; return max; } int main() { char str1[]={"abcd12345ed125ss123456789"}; char str2[]={"ava124554df54df342323423423sd"}; char outputstr[100]; int num; num=continumax(outputstr,str1); printf("%s中连续最长的数字串:\n长度为%d,内容为%s\n",str1,num,outputstr); num=continumax(outputstr,str2); printf("%s中连续最长的数字串:\n长度为%d,内容为%s\n",str2,num,outputstr); return 0; }