写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回

来源:互联网 发布:淘宝动漫周边店加盟 编辑:程序博客网 时间:2024/06/06 03:19

写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回

/************************************************************************//* 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr 所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr 后,函数将返回9,outputstr 所指的值为123456789*//************************************************************************/#include <iostream> using namespace std; int continumax(char *outputstr,char *intputstr){    int length=0,curLength=0;;    char *temp=NULL;    while((*intputstr)!='\0')    {        while(isdigit(*intputstr)&&(*intputstr)!='\0')        {//如果是数字,则不断的累加长度和指针            if (temp==NULL)            {                temp=intputstr;            }               curLength++;            intputstr++;        }        if (curLength>length)        {            length=curLength;            outputstr=temp;            temp=NULL;            curLength=0;        }        else        {            temp=NULL;            curLength=0;        }        intputstr++;     }    for (int i=0;i<length;i++)    {        cout<<*outputstr++;    }    cout<<endl;    return length;} int main(){    char *intputstr="abcd12345ed125ss123456789";    char *outputstr=NULL;    int length=continumax(outputstr,intputstr);    cout<<length;          return 0;}
转自:http://www.cnblogs.com/caidaxia/archive/2011/11/22/2259002.html