首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2013-09-14 
H面试程序(6):字符串中找出连续最长的数字串//1. 写一个函数,它的原形是int continumax(char *outputstr,c

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;}

热点排行