25.写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)

写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。
例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,
outputstr所指的值为123456789

这里可以在原来出申请空间,也可以在函数中申请空间。不过在函数中申请空间要用到二级指针!

#include <iostream>

int continumax(char **outputstr,char *intputstr);

int main()
{
	char* output = NULL ;
	char* input = "abcd12345ed125ss123456789";
	int i = continumax(&output,input);
	
	return 0;
}

int continumax(char **outputstr,char *intputstr)
{
	int j = 0;
	int nowmax = 0;
	int maxpoint = 0 ;
	for (int i=0;intputstr[i] != '\0';)
	{
		if (j == 0)
		{
			i++;
			j++;
		}
		else
		{
			while (intputstr[i-1]+1 == intputstr[i])
			{
				j++;
				i++;
			}
			if (j>nowmax)
			{
				nowmax = j ;
				maxpoint = i-j;
			}
			j = 0 ;
		}
	}
	char* temp = new char[nowmax+1] ;
	for (int i=0;i<nowmax;i++)
		temp[i] = intputstr[maxpoint+i];
	temp[nowmax] = '\0' ;
	*outputstr = temp ;
	return nowmax;
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值