[c++]string中删除相同字符

来源:互联网 发布:python程序员出路 编辑:程序博客网 时间:2024/06/02 09:03
// string的某一个迭代器被erase后,这个迭代器自动++;#include <iostream>#include <algorithm>#include <string>using namespace std;int main() {    int n;    cin >> n;    getchar();    while (n--) {        string input1;        getline(cin, input1);        string::iterator iter = input1.begin();        while (iter != input1.end()) {            for (string::iterator check2 = iter + 1; check2 != input1.end(); check2++) {                if (*iter == *check2) {                    input1.erase(check2);                    // cout << *check2 << endl;                    check2--;                    // 为了使得最后一次字符被删除时,check2不会超出input1的范围。                    // cout << *check2 << endl;                }            }            iter++;        }        cout << input1 << endl;    }    return 0;}
#include <iostream>#include <algorithm>#include <string>using namespace std;int main() {    int n;    cin >> n;    getchar();    while (n--) {        string input1;        getline(cin, input1);        string input2;        getline(cin, input2);        string::iterator iter_2 = input2.begin();        while (iter_2 != input2.end()) {            string::iterator iter_1 = input1.begin();            while (iter_1 != input1.end()) {                if (*iter_2 == *iter_1) {                    input1.erase(iter_1);                    iter_1--;                }                iter_1++;            }            iter_2++;        }        cout << input1 << endl;    }    return 0;}
0 0