读入一个字符串str,输出字符串str中的连续最长的数字串

读入一个字符串str,输出字符串str中的连续最长的数字串
输入描述:

测试输入包含1个测试用例,一个字符串str,长度不超过255。

输出描述:

在一行内输出str中里连续最长的数字串。

输入例子:

abcd12345ed125ss123456789

输出例子:

123456789

这是一个与字符串操作有关的题
解题思路:

  • 首先遍历字符串,找到连续的数字串
  • 把这一部分数字串遍历完后,记录数字串长度,继续往后遍历
  • 与后面的数字串长度进行比较,如果大于之前的就更新最大数字串
  • 输出刚刚标记的数字串
    代码:
#include
using namespace std;
#include

void Findnum(string str)
{
    size_t i=0;
    int count=0;//计数
    int maxnum=0;//标记最大数字串长度
    int pos=0;最大数字串的开始位置
    while(i<str.size())
    {
        while(!isdigit(str[i]))
           i++;//不是数字就往后走
        while(isdigit(str[i]))
        {
            count++;
            i++;
        }
        if(count>maxnum)
        {
            maxnum=count;//更新maxnum
            pos=i-maxnum;//标记pos
        }
        count=0;
    }
    for(int j=pos;jstr[j];
    cout<int main()
{
    string str;
    cin>>str;
    Findnum(str);
    return 0;
}

这就是简单的解题过程,希望能对大家有所帮助。

你可能感兴趣的:(读入一个字符串str,输出字符串str中的连续最长的数字串)