Syntax 1: Erases all characters in a string
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; }
output:
Before erase() : Hello World!
After erase() :
Syntax 2: Erases all characters after position ‘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; }
output:
Before erase(idx) : Hello World! After erase(idx) : H
Syntax 3: Erases at most, len characters of *this, starting at index idx.
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; }
output:
Before erase : Hello World! After erase : H World!
Syntax 4: Erase the single character at iterator position 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; }
output:
Before erase : Hello World! After erase : Hell World!
Syntax 5: Erase characters from iterator pos. to another iterator 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; }
output:
Before erase : Hello World! After erase : World!