输出字符串中最长连续数字串及个数

题目:输出字符串中最长的数字字符串和它的长度。如果有相同长度的串,则要一块儿输出,但是长度还是一串的长度
思路:先输入字符串,再进行遍历,当遇到数字时,开始计数,当遇到字母时,终止计数,看当前数字长度是否大于最大长度,若是,将输出字符串清空,并该段数字用strsub(位置,个数)拷贝到输出字符串,若与最大长度相同,则maxr不变,将该段字符添加到原来输出字符的后面。最后遍历完成后,要看最后计数是不是大于maxr,若最后一个是数字,并没有执行上面的操作。

#include
#include
#include
#include
using namespace std;
int main(){
    string s;
    while(cin>>s){
        int count=0;
        int maxr=0;
        string res="";
        for(int i=0;i<s.size();i++){
            if(s[i]>='0'&&s[i]<='9'){//遇到数字开始计数
                count++;
            }
            else{        //遇到字母终止计数
                if(count==maxr){
                    res+=s.substr(i-count,count);
                }
                if(count>maxr){
                    res.clear();
                    maxr=count;
                    res=s.substr(i-count,count);
                }
                count=0;
            }
        }
        if(count==maxr){
            res+=s.substr(s.size()-count,count);
        }
        if(count>maxr){
            res=s.substr(s.size()-count,count);
            maxr=count;
        }
        cout<<res<<','<<maxr<<endl;
    }
    return 0;
}

//思路:

你可能感兴趣的:(笔记)