字符串处理

来源:互联网 发布:织梦cms手机模板 编辑:程序博客网 时间:2024/05/22 00:34

给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。
例如
输入:
325 1
输出:
35
思路:从左到右开始找到第一个小于自己右边的数,然后删除这个数
程序代码:

#include<string>#include<iostream>using namespace std;int main(){    string s;    int len,i;    while(cin>>s>>len){        i=1;        //len为需要删除的数的数量,用while循环判断        while(len--){            //slen为输出的数字的位数            int slen = s.length();            for(i=0;i<slen-1;i++){                //找到第一个小于自己右边相邻数的数                if(s[i]<s[i+1]){                    //string的erase方法,删除下标为i的数                    s.erase(s.begin()+i);                    break;                }            }            //由于slen-1在上面的for循环判断会越界,所以单独判断            //当i为数组最后一个数时,删除最后一个数            if(i==slen-1)  s.erase(s.end()-1);        }        cout<<s<<endl;    }    return 0;}