在字符串中找出连续最常的字符串,并把这个串的长度返回。
2014-07-06 16:13
281 查看
在字符串中找出连续最常的字符串,并把这个串的长度返回。
并把这个最长数字串赋给一个函数参数outputstr所指向的内存。
例如"abcd12345ed123sf3343461346345" 的首地址赋给inputstr后函数返回9,outputstr所指向的值为“3343461346345”;
[cpp] view
plaincopy
#include <iostream>
using namespace std;
int maxContinueNum(char* &outputstr, char* inputstr){
int maxLen = 0;
char* cursor = inputstr;
while(*cursor){
if(*cursor>='0'||*cursor<='9'){
char* tmp = cursor;
int tmplen = 0;
while(*cursor&&*cursor>='0'&&*cursor<='9'){
++tmplen;
++cursor;
}
if(tmplen>maxLen){
outputstr = tmp;
maxLen = tmplen;
}
}
if(!*cursor)
break;
++cursor;
}
return maxLen;
}
int main(){
char inputstr[] = "abcd12345ed123sf3343461346345";
char *outputstr;
int len = maxContinueNum(outputstr, inputstr);
for(int i = 0 ; i < len ; ++i)
cout<<outputstr[i];
cout<<endl;
system("PAUSE");
return 0;
}
此题要注意的是如何返回地址指针,通过指向地址指针的应用来保持地址指针,否则如果只是使用一维地址保持地址指针会丢失,因为是值传递。
并把这个最长数字串赋给一个函数参数outputstr所指向的内存。
例如"abcd12345ed123sf3343461346345" 的首地址赋给inputstr后函数返回9,outputstr所指向的值为“3343461346345”;
[cpp] view
plaincopy
#include <iostream>
using namespace std;
int maxContinueNum(char* &outputstr, char* inputstr){
int maxLen = 0;
char* cursor = inputstr;
while(*cursor){
if(*cursor>='0'||*cursor<='9'){
char* tmp = cursor;
int tmplen = 0;
while(*cursor&&*cursor>='0'&&*cursor<='9'){
++tmplen;
++cursor;
}
if(tmplen>maxLen){
outputstr = tmp;
maxLen = tmplen;
}
}
if(!*cursor)
break;
++cursor;
}
return maxLen;
}
int main(){
char inputstr[] = "abcd12345ed123sf3343461346345";
char *outputstr;
int len = maxContinueNum(outputstr, inputstr);
for(int i = 0 ; i < len ; ++i)
cout<<outputstr[i];
cout<<endl;
system("PAUSE");
return 0;
}
此题要注意的是如何返回地址指针,通过指向地址指针的应用来保持地址指针,否则如果只是使用一维地址保持地址指针会丢失,因为是值传递。
相关文章推荐
- 微软面试之25 在字符串中找出连续最长的数字串,并把这个串的长度返回,
- 每天学习一点编程(4)(在字符串中找出连续最长的数字串,并把这个串的长度返回)
- 第25题: 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr),在字符串中找出连续最长的数字串,并把这个串的长度返回
- 【微软100题】写一个函数,它的原形是int continumax(char *outputstr,char *intputstr) 功能: 在字符串中找出连续最长的数字串,并把这个串的长度返回
- 请一个在字符串中找出连续最长的数字串,并把这个串的长度返回;如果存在长度相同的连续数字串,返回最后一个连续数字串
- 在字符串中找出连续最长的数字串,并把这个串的长度返回
- 【编程题目】在字符串中找出连续最长的数字串,并把这个串的长度返回
- 在字符串中找出连续最长的数字串并以参数形式返回,并把这个串的长度返回
- C/C++ | 21-9 字符串中找出连续最长的数字串,并把这个串的长度返回
- 【练习】写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,
- 在字符串中找出连续最长的数字串,并把这个串的长度返回
- 华为练习题 在字符串中找出连续最长的数字串,并把这个串的长度返回
- 数据结构——算法之(024)(在字符串中找出连续最长的数字串,并把这个串的长度返回)
- 字符串中找出连续最长的数字子串,并返回这个数字串的长度
- 在字符串中找出连续最长的数字串,并把这个串的长度返回.
- 写正确函数需要注意的地方:在字符串中找出连续最长的数字串,并把这个串的长度返回
- 每天学习一算法系列(22)(在字符串中找出连续最长的数字串,并把这个串的长度返回)
- 25 字符串中找出连续最长的数字串,返回长度
- 求两个字符串的最大公共子序列(可以不连续)的长度,并输出这个子序列
- 返回固定长度的字符串,必须有数字,大字母小写字母,不能连续4位以上