溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在c++ 中利用erase方法對string進(jìn)行刪除

發(fā)布時間:2020-12-11 13:59:54 來源:億速云 閱讀:306 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何在c++ 中利用erase方法對string進(jìn)行刪除,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

erase方法原型

1. basic_string & erase(size_type pos=0, size_type n=npos);

即從給定起始位置pos處開始刪除, 要刪除字符的長度為n, 返回值修改后的string對象引用

示例[1]

#include<iostream>
#include<string>
using namespace std;

int main(){
 string str = "hello c++! +++";
 // 從位置pos=10處開始刪除,直到結(jié)尾
 // 即: " +++"
 str.erase(10);
 cout << '-' << str << '-' << endl;
 // 從位置pos=6處開始,刪除4個字符
 // 即: "c++!"
 str.erase(6, 4);
 cout << '-' << str << '-' << endl;
 return 0;
}

輸出

如何在c++ 中利用erase方法對string進(jìn)行刪除

2. iterator erase(const_iterator position)

刪除迭代器位置處的單個字符, 并返回下個元素的迭代器

3. iterator erase(const_iterator first, const_iterator last)

刪除迭代器[first, last)區(qū)間的所有字符,返回一個指向被刪除的最后一個元素的下一個字符的迭代器.

示例[2,3]:

#include<iostream>
#include<string>
using namespace std;

int main(){
 string str = "hello c++! +++";
 // 刪除"+++"前的一個空格
 str.erase(str.begin()+10);
 cout << '-' << str << '-' << endl;
 // 刪除"+++"
 str.erase(str.begin() + 10, str.end());
 cout << '-' << str << '-' << endl;
 return 0;
}

輸出

如何在c++ 中利用erase方法對string進(jìn)行刪除

補充

除了erase方法用于刪除string中的元素, void pop_back();方法也可以用來刪除元素, 但是只能刪除string的最后一個元素

查找方法

在使用erase刪除函數(shù)的時候,經(jīng)常會和查找函數(shù)一起使用

*find*(**)系列方法參數(shù)可以是char 或者 string 類型, 為待查找的目標(biāo), 返回值為 size_type;當(dāng) 查找不到目標(biāo)時,返回值為 npos, 可以這樣判斷

string longer("That's a funny hat.");
//size_type loc1 = longer.find("hat"); // 存在
size_type loc1 = longer.find("hello"); //不存在
if (loc1 == string::npos)
 cout<< "not found" <<endl;

上述就是小編為大家分享的如何在c++ 中利用erase方法對string進(jìn)行刪除了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI