该函数将删除一部分字符串内容,从而缩短字符串的长度。受影响的字符取决于所使用的成员函数版本:
返回值:erase()返回* this。
- 语法1:擦除字符串中的所有字符
string& string::erase ()
// CPP code to illustrate // erase() function #include <iostream> #include <string> using namespace std; // Function to demo erase() void eraseDemo(string str) { // Deletes all characters str.erase(); cout << "After erase():"; cout << str; } // Driver code int main() { string str("Hello World!"); cout << "Before erase():"; cout << str << endl; eraseDemo(str); return 0; }
输出:
Before erase():Hello World! After erase():
- 语法2:删除位置“ pos”之后的所有字符
string& string::erase (size_type pos) - Throw out_of_range if idx > size().
// CPP code to illustrate working of // erase(idx) #include <iostream> #include <string> using namespace std; // Function to demo erase void eraseDemo(string str) { // Deletes all characters except first one str.erase(1); cout << "After erase(idx):"; cout << str; } // Driver code int main() { string str("Hello World!"); cout << "Before erase(idx):"; cout << str << endl; eraseDemo(str); return 0; }
输出:
Before erase(idx):Hello World! After erase(idx):H
- 语法3:从索引idx开始最多擦除* this的len个字符。
string& string::erase (size_type idx, size_type len ) - If len is missing, all remaining characters are removed. - Throw out_of_range if idx > size().
// CPP code to illustrate // erase(size_type idx, size_type len ) #include <iostream> #include <string> using namespace std; // Function to demo erase void eraseDemo(string str) { // Deletes 4 characters from index number 1 str.erase(1, 4); cout << "After erase:"; cout << str; } // Driver code int main() { string str("Hello World!"); cout << "Before erase:"; cout << str << endl; eraseDemo(str); return 0; }
输出:
Before erase:Hello World! After erase:H World!
- 语法4:删除迭代器位置pos处的单个字符。
string& string::erase (iterator pos) - Return the first character after the last character removed - If no such character is remaining then, returns string::end() i.e. position after the last character.
// CPP code to illustrate // erase(iterator pos) #include <iostream> #include <string> using namespace std; // Function to demo erase void eraseDemo(string str) { // Deletes character at position 4 str.erase(str.begin() + 4); cout << "After erase:"; cout << str; } // Driver code int main() { string str("Hello World!"); cout << "Before erase:"; cout << str << endl; eraseDemo(str); return 0; }
输出:
Before erase:Hello World! After erase:Hell World!
- 语法5:删除迭代器位置pos处的单个字符。
string& string::erase (iterator beg, iterator end ) - Erases all characters of the range [ beg, end) - Returns end i.e. the first character after the last character removed. - If no such character is remaining then, returns string::end() i.e. position after the last character
// CPP code to illustrate // erase(iterator pos, iterator end) #include <iostream> #include <string> using namespace std; // Function to demo erase void eraseDemo(string str) { // Deletes all characters between 0th index and // str.end() - 6 str.erase(str.begin() + 0, str.end() - 6); cout << "After erase:"; cout << str; } // Driver code int main() { string str("Hello World!"); cout << "Before erase:"; cout << str << endl; eraseDemo(str); return 0; }
输出:
Before erase:Hello World! After erase:World!
相关用法
注:本文由纯净天空筛选整理自 std::string::erase in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。