/*
写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr 所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr 后,函数将返回9,
outputstr 所指的值为123456789
*/
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>
#include <assert.h>
using namespace std;
int continumax(char *outputstr, char *intputstr)
{
char *out, *in,*temp=NULL,*final=NULL;
in = intputstr;
out = outputstr;
int count = 0;
int longth=0;
int num = 0;
while (*in != '\0')
{
if (*in > 47 && *in < 58)
{
for (temp = in; *in > 47 && *in < 58; in++)//这个for用的好
count++;
}
else
in++;
if (longth < count)
{
longth = count;
count = 0;
final = temp;
}
else if (longth == count)
{
num++;
longth = count;
count = 0;
final = temp;
}
}
for (int i = 0; i < longth; i++)
{
*out = *final;
out++;
final++;
}
*out = '\0';
return longth;
}
int main()
{
char *a = "abcd12345ed125ss123456789";
char *b = NULL;
b = (char *)malloc(sizeof(char)*strlen(a));
continumax(b, a);
cout << b << endl;
free(b);
system("pause");
return 0;
}
//如有问题,请指出,谢谢~