25 .求字符串中连续最长的数字串

 这个没什么技巧,遍历,如果1个字符是数字符的话,那么以它为起点遍历,寻找以它为起点的连续的数字串的长度,下一次起点是这个连续字符串的下一个位置,保存1个最大长度和一个指向最长连续数字串的指针

/*
     求字符串中连续最长的数组串
 */

#include<stdio.h>
#include<iostream>
using namespace std;

#define MAX 100

int continumax(char* outputstr,char* inputstr)
{
    char* p=inputstr;
    char* q=NULL;
    char* k=NULL;
    int length=0;
    
    while(*p!='\0')
    {
        if(*p>='0'&&*p<'9')
        {
            q=p;
            k=p;
            int count=0;
            while(*q>='0' && *q<='9')
            {
                count++;
                q++;
            }
            if(count>=length)
                length=count;
            p=q;
        }
        else
            p++;
    }
    
    int i=0;
    while(i<length)
    {
        *(outputstr+i)=*(k+i);
        ++i;
    }
    *(outputstr+i)='\0';

    return length;
}

int main(void)
{
    char inputstr[MAX];
    char outputstr[MAX];

    scanf("%s",inputstr);
    continumax(outputstr,inputstr);
    cout<<outputstr<<endl;
    return 0;
}

 

posted on 2013-08-16 15:55  紫金树下  阅读(402)  评论(0编辑  收藏  举报