写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,
outputstr所指的值为123456789
这里可以在原来出申请空间,也可以在函数中申请空间。不过在函数中申请空间要用到二级指针!
#include <iostream>
int continumax(char **outputstr,char *intputstr);
int main()
{
char* output = NULL ;
char* input = "abcd12345ed125ss123456789";
int i = continumax(&output,input);
return 0;
}
int continumax(char **outputstr,char *intputstr)
{
int j = 0;
int nowmax = 0;
int maxpoint = 0 ;
for (int i=0;intputstr[i] != '\0';)
{
if (j == 0)
{
i++;
j++;
}
else
{
while (intputstr[i-1]+1 == intputstr[i])
{
j++;
i++;
}
if (j>nowmax)
{
nowmax = j ;
maxpoint = i-j;
}
j = 0 ;
}
}
char* temp = new char[nowmax+1] ;
for (int i=0;i<nowmax;i++)
temp[i] = intputstr[maxpoint+i];
temp[nowmax] = '\0' ;
*outputstr = temp ;
return nowmax;
}