字符串中找出连续最长的数字串

  • 问题描述
    读入一个字符串str,输出字符串str中的连续最长的数字串。
    Example:
    输入:abcd12345ed125ss123456789
    输出:123456789

  • 问题分析
    定义两个字符串res,cur;
    res用于存放要输出的字符串,cur用于追加数字字符;
    遍历字符串{
      如果是数字字符,则追加到cur上;
      如果不是,比较res与cur的长度,将更长的字符串赋给res,并将cur清空;
    }

  • 代码实现

#include<iostream>
#include<string>
using namespace std;

int main()
{
    string str,res,cur;
    cin>>str;
    //一定要i<=str.length(),否则走到最后一个数字时不会将cur赋给res
    for(int i=0;i<=str.length();i++){
        if(str[i]>='0' && str[i]<='9') cur+=str[i];
        else{
            if(res.length()<cur.length()) res=cur;
            cur="";
        }
    }
    cout<<res;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/ananbei/article/details/81134605