【题目】写一个函数,它的原形是 int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr 后,函数将返回9,
outputstr所指的值为 123456789
【思路】求字串问题
// continuemax2.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
int continueMex(char*&outStr,char *inStr)
{
if (NULL==inStr)
{
return -1;
}
int count=0;
int maxNum=0;
for (unsigned int i=0;i<strlen(inStr);)
{
if(*(inStr+i)>'9' || *(inStr+i)<'0')
{
count=0;
i++;
}
else
{
count++;
i++;
if (maxNum<count)
{
maxNum=count;
outStr=inStr+i-count;
}
}
}
return maxNum;
}
int _tmain(int argc, _TCHAR* argv[])
{
char *a="asd324sdd123456a@f40034";
char *b=a;
cout<<continueMex(b,a)<<endl;
string s=b;
cout<<s.substr(0,continueMex(b,a)); //输出符合要求的字串
system("pause");
return 0;
}