在字符串中找出连续最长的数字串 在字符串中找出连续最长的数字串,并把这个串的长度返回

写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,

#include<iostream>
using namespace std;
int ContinueMax(char * output, const char * input) 
{
    if(input==NULL) return 0;
    const char* hegin=NULL;
    int max_len=0;
    while(*input)
    {
        if(!isdigit(*input))
        {
           input++;
           continue;
        }
        const char* temp=input;
        int sum=0;
        for(;isdigit(*input);input++,sum++);
        
        if(sum>max_len)
        {
            max_len=sum;
            hegin=temp;
            
        }
    }
    memcpy(output,hegin,max_len);
    output[max_len]=0;
    return max_len;
}
int main()
{
    char output[100];  
    char input[100];  
    while (true)  
    {  
        cin >> input;  //输入完成后末尾自动添加\0
        memset(output, 0 , sizeof(output));  
          
        int len = ContinueMax(output, input);  
          
        cout << len<<" " << output<<endl;  
    } 
    return 0;
}

 

posted @ 2014-10-06 17:31  -琥珀川-  阅读(656)  评论(0编辑  收藏  举报