H面试程序(6):字符串中找出连续最长的数字串

发布时间:2017-6-25 3:03:26 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"H面试程序(6):字符串中找出连续最长的数字串",主要涉及到H面试程序(6):字符串中找出连续最长的数字串方面的内容,对于H面试程序(6):字符串中找出连续最长的数字串感兴趣的同学可以参考一下。

    //1. 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr) //功能: //在字符串中找出连续最长的数字串,并把这个串的长度返回, //并把这个最长数字串付给其中一个函数参数outputstr所指内存。 //例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789 #include<stdio.h> #include<assert.h> int continumax(char *outputstr,char *inputstr) { assert(outputstr); assert(inputstr); int length = 0; int maxlength = 0; int i = 0; int j = 0; while(inputstr[i] != '\0') { while( inputstr[i] >='0'&& inputstr[i] <= '9') { length++; i++; } if(length > maxlength) { maxlength = length; int k = i-maxlength; for(j = 0; j < maxlength; j++ ) { outputstr[j] =inputstr[k++]; } length = 0; continue; } i++; length = 0; } outputstr[j] = '\0'; return maxlength; } int main( ) { char inputstr[ ]= "abcd12345eddafsd125ss123456789"; char outputstr[100]; int max_numstr_length = continumax(outputstr,inputstr); printf("%s\n",outputstr); printf("the max_numstr_length is %d\n", max_numstr_length); return 0; }     ii   #include<iostream.h> #include<malloc.h> int continumax(char * outputstr, char * inputstr) { int len = 0; //统计数字字符串的长度 int max = 0; //当前最大数字字符串的长度 char *pstr =NULL; //记录最大数字字符的起始位置 while(* inputstr!= '\0') { if(*inputstr <= '9' && *inputstr >='0') //统计数字子字符串的长度 { len++; inputstr++; continue; } else if (len > max) //如果统计出来的数字字符串大于当前的最大数字子字符串的长度,则更新 { max = len; pstr = inputstr-len; len = 0; } inputstr++; } for(int i = 0 ; i<max;i++) //将最大子字符串的值拷贝给outputstr { *outputstr = *pstr; outputstr++; pstr++; } outputstr = outputstr-max; outputstr[max] ='\0'; cout<<outputstr<<endl; return max; } int main() { char input[] = "de1234de123456ed"; //char * out = (char *)malloc(100*sizeof(char)); char output[100]; int max = continumax(output, input); cout<<max<<endl; return 0; }

上一篇:模板
下一篇:优先队列--poj2431

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。