这道题的解法:
以字符串 abcd12345ed125ss123456789 为例,先定义两个名为cur,ret的string类型变量,用一个下标i指向字符串的首个元素,然后判断是不是数字字符,不是往后走,直到遇到数字字符,把连续的数字字符拷到一个名为cur的字符串,把连续的数字字符拷到cur,然后判断cur的长度是不是大于ret的长度,大于把ret的长度拷贝到ret,然后循环上面的操作
代码如下
#include <iostream>
#include <string>
using namespace std;
int main() {
//创建一个string类型原来接收输入的字符串
string str;
cin >> str;
//cur原来保存当前数字字符串的长度,ret原来保存结果字符串长度
string cur,ret;
int n = str.size(), i = 0;
while (i < n)
{
//判断是不是数字字符
if (str[i] >= '0' && str[i] <= '9')
{
cur = "";
while(i < n && str[i] >= '0' && str[i] <= '9')
{
cur += str[i];
++i;
}
//如果cur的长度大于ret的长度,把cur拷到ret
if (cur.size() > ret.size())
ret = cur;
}
else //不是数字字符往后走
{
i++;
}
}
cout << ret;
return 0;
}