华为OJ(在字符串中找出连续最长的数字串)

来源:互联网 发布:吾生而有涯而知而无涯 编辑:程序博客网 时间:2024/06/06 13:11

题目:在字符串中找出连续最长的数字串

写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)
功能:
在字符串中找出连续最长的数字串,并把这个串的长度返回,
并把这个最长数字串付给其中一个函数参数outputstr所指内存。

对于空串或不包含数字的字符串,输出0
输入:abcd12345ed125ss123456789

输出:123456789,9

#include<iostream>#include<string>using namespace std;const int N=200;unsigned int continumax(char*,char*);int main(){char inputstr[N],outputstr[N];gets(inputstr);int num=continumax(inputstr,outputstr);if(num){for(int i=0;i<num;i++)cout<<outputstr[i];cout<<",";}cout<<num<<endl;//system("pause");return 0;}unsigned int continumax(char * inputstr,char* outputstr){int len=strlen(inputstr);int flag=1,cnt=0,max=0,index;for(int i=0;i<len;i++){if(isdigit(inputstr[i])){flag=1;cnt++;if(cnt>max){max=cnt;index=i;}}else if(!isdigit(inputstr[i])){flag=0;cnt=0;}}for(int i=0;i<max;i++)outputstr[max-1-i]=inputstr[index-i];return max;}


0 0
原创粉丝点击