【c++】刪除string中指定的字符


 

使用string::iterator(字符串迭代器)從開始 str.begin() 迭代到最后 str.end() ,再使用string.erase(const_iterator p)函數來刪除迭代器所指向的字符。

 

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string str;
    char ch;
    cin >> str;
    cin >> ch;
    string::iterator it;
    for (it = str.begin(); it < str.end(); it++)
    {
        if (*it == ch)
        {
            str.erase(it);
            it--;
            /*
            it--很重要,因為使用erase()刪除it指向的字符后,后面的字符就移了過來,
            it指向的位置就被后一個字符填充了,而for語句最后的it++,又使it向后移
            了一個位置,所以就忽略掉了填充過來的這個字符。在這加上it--后就和for
            語句的it++抵消了,使迭代器能夠訪問所有的字符。
            */
        }
    }
    cout << str;
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM