首页 > 代码库 > IT公司100题-25-求字符串中的最长数字串
IT公司100题-25-求字符串中的最长数字串
问题描述:
实现一个函数,求出字符串中的连续最长数字串。例如输入”12345cbf3456″,输出”12345″。
函数原型为:
void conti_num_max( const char * src, char * dest);
dest保存最长数字串,返回void。
分析:
遍历一遍字符串,记录起始位置和长度即可。
代码实现:
1 // 25.cc 2 #include <iostream> 3 #include <cstring> 4 using namespace std; 5 6 void conti_num_max(const char* src, char* dest) { 7 if (!src) { 8 *dest = ‘\0‘; 9 return;10 }11 12 size_t len = 0;13 size_t max_len = 0;14 const char* p = src;15 const char* p_start = NULL;16 while (*p != ‘\0‘) {17 if (*p >= ‘0‘ && *p <= ‘9‘)18 len++;19 else {20 if (len > max_len) {21 max_len = len;22 p_start = p - len;23 }24 len = 0;25 }26 p++;27 }28 strncpy(dest, p_start, max_len);29 }30 31 int main() {32 string s;33 cout << "input a str contain num:" << endl;34 getline(cin, s);35 36 char* dest = new char[s.size() + 1];37 conti_num_max(s.c_str(), dest);38 cout << dest << endl;39 return 0;40 }
输出:
$ ./a.exeinput a str contain num:123dfasdf123123asdfasdf33333333333333asdfsdf221asdf232333333333333333
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。