功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,
outputstr所指的值为123456789
#include <iostream>
using namespace std;
int continumax(char *outputstr, char *intputstr)
{
if (NULL == intputstr)
{
return 0;
}
int nMaxNum = 0;
int nCurNumLen = 0;
char *pStart = intputstr;
//找出最长的数字串
while (*intputstr)
{
if (*intputstr >= '0' && *intputstr <= '9')
{
++nCurNumLen;
}
else
{
if (nCurNumLen > nMaxNum)
{
nMaxNum = nCurNumLen;
pStart = intputstr - nCurNumLen;
nCurNumLen = 0;
}
}
++intputstr;
}
//最长的数字串赋给outputstr
for (int i = 0; i < nMaxNum; ++i)
{
*(outputstr + i) = *pStart++;
}
*(outputstr + nMaxNum) = '\0';
return nMaxNum;
}
int main()
{
char ch1[10];
char *ch2 = "abc123cd12343fsfs1234";
int n = continumax(ch1, ch2);
cout<<"长度:"<<n<<endl;
cout<<"数字字符串:"<<ch1<<endl;
return 1;
}