问题描述
读入一个字符串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;
}