题目:
写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,
outputstr所指的值为123456789
代码:
int continumax(char *outputstr, char *intputstr)
{
//最长数字串的长度
int lenght = 0;
//中间计算数字串的长度
int tempLen = 0;
//查找过程中查找到的字符的下标号
int index = 0;
//标记最长数字串的位置
int sign = 0;
//遍历一遍,遇到"\0"终止
while(intputstr[index] != '\0')
{
//判断是否为数字
if((intputstr[index] >= '0') && (intputstr[index] <= '9'))
{
tempLen++;
}else
{
if((tempLen != 0) && (tempLen > lenght))
{
//记录目前为止最长数字串的位置与长度
lenght = tempLen;
sign = index;
}
tempLen = 0;
}
index++;
}
if((tempLen != 0) && (tempLen > lenght))
{
//记录目前为止最长数字串的位置与长度
lenght = tempLen;
sign = index;
}
if(lenght != 0)
{
memcpy(outputstr, &intputstr[sign-lenght], lenght);
}
outputstr[lenght] = '\0';
return lenght;
}