现在的位置: 首页 > 综合 > 正文

25 字符串中找出连续最长的数字串,返回长度

2018年01月20日 ⁄ 综合 ⁄ 共 866字 ⁄ 字号 评论关闭
/*
第 25  题:
写一个函数,它的原形是 int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数 outputstr  所指内存。
例如:"abcd12345ed125ss123456789" 的首地址传给 intputstr 后,函数将返回 9,
outputstr  所指的值为 123456789
*/

#include<iostream>
#include<stdio.h>
using namespace std;

int continumax(char *outputstr,char *inputstr)
{
	
	int i,start,num,max; 
	//printf("%s",inputstr);
	num=0;
	max=0;
	for(i=0;inputstr[i]!='\0';i++)
	{
		if(inputstr[i]>='0'&&inputstr[i]<='9')
			num++;
		else		
			num=0; 
			
		if(num>max) 
		{
			max=num;
			start=i-max+1;//起始位置
		}
	}
	
	for (i=0;i<max;i++)
		*outputstr++=inputstr[start++];
	*outputstr='\0';	
	return max;
} 
int main()
{
	char str1[]={"abcd12345ed125ss123456789"};
	char str2[]={"ava124554df54df342323423423sd"};
	char outputstr[100];
	int num;
	
	num=continumax(outputstr,str1);
	printf("%s中连续最长的数字串:\n长度为%d,内容为%s\n",str1,num,outputstr);
	
	num=continumax(outputstr,str2);
	printf("%s中连续最长的数字串:\n长度为%d,内容为%s\n",str2,num,outputstr);
	return 0;
}

抱歉!评论已关闭.