【C++】在字符串中找出连续最长的数字子串
2015-03-04 11:09
441 查看
/* 功能:在字符串中找出连续最长的数字串,并把这个串的长度返回 函数原型: unsigned int Continumax(char** pOutputstr, char* intputstr) 输入参数: char* intputstr 输入字符串 输出参数: char** pOutputstr: 连续最长的数字串,如果连续最长的数字串的长度为0,应该返回空字符串"",而不是NULL,如果输入字符串为空,也返回空字符串"" 返回值: 连续最长的数字串的长度 */ #include <iostream> #include <cstring> using namespace std; unsigned int Continumax(char** pOutputstr, char* intputstr) { if (!intputstr) //输入字符串为空 { *pOutputstr = ""; return 0; } int len = strlen(intputstr); char *Outstr = new char[len + 1]; int i = 0, begin = 0, maxnum = 0, num; while (intputstr[i] != '\0') //找出字符串中最长数字字串,记录其在输入字符串中的起始位置begin及长度maxnum { num = 0; while (intputstr[i] >= '0'&&intputstr[i] <= '9') { num++; i++; } if (num >= maxnum) { maxnum = num; begin = i - maxnum; } i++; } if (maxnum == 0) //输入字符串中无数字 { *pOutputstr = ""; return 0; } for (i = 0; i < maxnum; i++) Outstr[i] = intputstr[begin + i]; Outstr[i] = '\0'; *pOutputstr = Outstr; return maxnum; } void main() { char *intputstr = "abcd12345ed234567890ss12345678"; //char *intputstr = NULL; char *pOutputstr = NULL; unsigned int Length = Continumax(&pOutputstr, intputstr); cout << Length << ',' << pOutputstr << endl; system("pause"); }
相关文章推荐
- 找出字符串中的最长连续数字子串
- 在字符串中找出连续最长的数字串(C++ 坑)
- 字符串中找出连续最长的数字子串,并返回这个数字串的长度
- 【c++】字符串中找出最长的连续数字字符串
- 华为机试题—在字符串中找出连续最长的数字串 c++
- 找出一个字符串中最长的连续数字子串,输出该字符串及长度
- C/C++ | 21-9 字符串中找出连续最长的数字串,并把这个串的长度返回
- 字符串中找出连续最长的数字串
- 在字符串中找出连续最长的数字串
- 在字符串中找出连续最长的数字串
- 25. 在字符串中找出连续最长的数字串
- 25、在字符串中找出连续最长的数字串
- 第25题: 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr),在字符串中找出连续最长的数字串,并把这个串的长度返回
- 在字符串中找出连续最长的数字串
- 字符串操作系列_1在字符串中找出连续最长的数字串
- 字符串中找出连续最长的数字串
- 在字符串中找出连续最长的数字串
- 每天学习一算法系列(22)(在字符串中找出连续最长的数字串,并把这个串的长度返回)
- 在字符串中找出连续最长的数字串
- 在字符串中找出连续最长的数字串,并把这个串的长度返回.