int maxContinuNum(const char*inputstr.char*outputstr)
功能:
在以‘\0’结尾的字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参
数outputstr所指内存。不能用strlen之类的库函数。
#include<iostream> #include<assert.h> using namespace std; bool isdigital(char p){ if(p>='0'&&p<='9') return true; return false; } int maxContinuNum(const char* inputstr,char* outputstr){ int len=0;//每次的连续数 int maxlen=0;//最大的连续数 char* start=NULL;//记录最大连续数指针开始的位置 if(*inputstr=='\0') return 0; while(*inputstr!='\0'){ while(*inputstr!=0&&isdigital(*inputstr)){ len++; inputstr++; } if(len>maxlen){ maxlen=len; start=(char*)(inputstr-maxlen); } len=0; if(*inputstr!='\0') inputstr++; } for(int i=0;i<maxlen;i++) *(outputstr++)=*(start++); cout<<outputstr<<endl; return maxlen; } int main(){ char *str="1234asdf234211jjl111122223312j"; char *str1=(char*)malloc(100*sizeof(char)); memset(str1,0,100);//如果没有这个操作,str1字符串就找不到正确的结束符,输出会出现乱码 int str_len; str_len=maxContinuNum(str,str1); cout<<str_len<<endl <<str1<<endl; system("pause"); return 1; }
另一种好的解决方法:
#include <stdio.h> int Findmaxlen(char *input,char *output); void main() { char input[]="abc123def123456ee123456789dd"; char output[50]={0}; int maxlen; maxlen=Findmaxlen(input,output); printf("the str %s\n",output); printf("the maxlen is %d \n",maxlen);} int Findmaxlen(char *input,char *output) {char *in=input,*out=output,*temp,*final; int count=0,maxlen=0,i; while(*in!='\0') { if(*in>='0'&&*in<='9') { count=0; for(temp=in;*in>='0'&&*in<='9';in++) count++; if(maxlen<count) { maxlen=count; final=temp; }//if }//if in++; }//while for(i=0;i<maxlen;i++) *out++=*final++; *out='\0'; return maxlen; }
发表评论
-
析构函数为虚函数的原因
2012-09-09 11:42 786我们知道,用C++开发的时候,用来做基类的类的析构函数 ... -
hash的应用
2012-08-31 23:02 925第一部分为一道百度面试题Top K算法的详解;第二部分为关 ... -
微软智力题
2012-08-29 19:59 539第一组1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有 ... -
C++不能被继承的类
2012-08-27 20:16 997一个类不能被继承, ... -
括号对齐问题
2012-08-27 10:47 1352解法一:左右括号成一对则抵消 可以 ... -
树的遍历
2012-08-19 10:43 680/****************************** ... -
堆排序
2012-08-16 14:24 844堆:(二叉)堆数据结构是一种数组对象。它可以被视为一棵完全 ... -
多态赋值
2012-08-14 16:16 778#include <iostream> usi ... -
static变量与static函数(转)
2012-08-13 10:15 702一、 static 变量 static变量大致分为三种用法 ... -
不用sizeof判断16位32位
2012-08-10 15:21 1663用C++写个程序,如何判断一个操作系统是16位还是3 ... -
顺序栈和链栈
2012-08-06 10:01 767顺序栈:话不多说直接上代码 #include ... -
队列的数组实现和链表实现
2012-08-05 16:20 995话不多少,数组实现上代码: #include<i ... -
KMP算法详解
2012-08-02 21:40 850KMP算法: 是在一个“主文本字符串” ... -
字符串的最长连续重复子串
2012-08-01 15:05 9700两种方法: 循环两次寻找最长的子串: <方法一> ... -
寻找一个字符串连续出现最多的子串的方法(转)
2012-07-31 21:19 918算法描述首先获得后缀数组,然后1.第一行第一个字符a,与第二行 ... -
字符串的循环移位
2012-07-31 16:52 936假设字符串:abcdefg 左循环两位:cdefgab 右 ... -
一次谷歌面试趣事(转)
2012-07-31 15:26 726很多年前我进入硅谷 ... -
约瑟夫环问题(循环链表)
2012-07-30 21:31 1242题目描述:n只猴子要选大王,选举方法如下:所有猴子按 1, ... -
面试之单链表
2012-07-30 20:18 6911、编程实现一个单链表的建立/测长/打印。 ... -
多重继承内存地址问题
2012-07-30 15:55 696[cpp] view plaincopy ...
相关推荐
百度面试经历 ,电话面试经历,很真实的经历
百度笔试面试题,挺全的,百度面试还没到,细心准备吧。
数字电路公司面试试题数字电路公司面试试题数字电路公司面试试题数字电路公司面试试题数字电路公司面试试题数字电路公司面试试题数字电路公司面试试题数字电路公司面试试题数字电路公司面试试题数字电路公司面试试题...
百度面试题目 IOS
百度面试题大收集百度面试题大收集百度面试题大收集
2 多人排成一个队列,我们认为从低到高是正确的序列,但是总有部分人不遵守秩序。如果说,前面的人比后面的人高(两人...那么,现在给出一个整型序列,请找出这些捣乱分子对的个数(仅给出捣乱分子对的数目即可,不用具体的对)
一套百度面试卷完整的扫描版,图片格式,想进入百度的朋友们加油了
百度面试软件测试题
百度的面试攻略,包括百度简介、笔试资料、面试资料、求职综合经验等
去百度面试的时候 百度内部人士给的面试题资料 很有用
在字符串中查找最长重复子串的探讨 写一个函数,找出一个字符串中最长的重复子串。“t1t1”结果就是t1."cabcabca"结果就是cab或者abc或者bca。
百度面试题第三题及答案.doc;百度面试题第三题及答案.doc;百度面试题第三题及答案.doc
09_拼多多面试真题:如何找出连续出现N次的内容?
c语言面试题 c语言面试题之哈希表最长回文串
百度面试经验,第一大题 简答 1. extern “C”{}癿吨丿?作用? 2. 至少写出两种讱计模弅,说明使用场景,最好有伪代码。 3. TCP连接中time_wait是什举状忞?意丿?好处坏处? 第事大题 算法秳序 1. 呾2010年校招童...
简介: 百度试题PDF文件,详细请下载查看。 本资料共包含以下附件: 百度试题.rar
讲述baidu面试经历,对即将找工作的对百度有兴趣的人士,有很大的帮助。
百度面试题集锦,希望对您有帮助。很好的面试题。
百度2013年移动开发岗位面试题(南京)