c++ string的erase刪除方法
之前不是很清楚c++中string如何刪除元素,現(xiàn)在記錄一下。
(參考自 c++ primer plus 第六版 模版類 string)
string中提供的成員函數(shù)可以用來刪除字符串中的字符,這里主要介紹erase方法
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; }
輸出
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; }
輸出
補(bǔ)充
除了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++ string的erase刪除方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
WM_CLOSE、WM_DESTROY、WM_QUIT及各種消息投遞函數(shù)詳解
這篇文章主要介紹了WM_CLOSE、WM_DESTROY、WM_QUIT及各種消息投遞函數(shù),有助于讀者更好的理解windows程序的消息機(jī)制,需要的朋友可以參考下2014-07-07C語言連接并操作Sedna XML數(shù)據(jù)庫的方法
這篇文章主要介紹了C語言連接并操作Sedna XML數(shù)據(jù)庫的方法,實例分析了C語言操作XML文件的相關(guān)技巧,需要的朋友可以參考下2015-06-06OpenCV透視變換應(yīng)用之書本視圖矯正+廣告屏幕切換
透視變換是指利用透視中心、像點、目標(biāo)點三點共線的條件,按透視旋轉(zhuǎn)定律使承影面繞跡線旋轉(zhuǎn)某一角度,破壞原有的投影光線束,仍能保持承影面上投影幾何圖形不變的變換。本文將為大家介紹兩個OpenCV透視變換應(yīng)用,需要的可以參考一下2022-08-08