Last Updated : 19 May, 2025
The string erase() function is a built-in function of the string class that is used to erase the whole or part of the string, shortening its length. The function provides different ways to delete a portion of a string based on either an index position or a range of characters or delete the whole string.
Example :
C++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Hello, World!";
// Erase a single character sterting
// from index 5
str.erase(5, 1);
cout << str;
return 0;
}
Syntax
The string erase() function provides 5 different overloads for different purposes:
C++
s.erase() // Erases whole string
s.erase(idx) // Erases all characters after idx
s.erase(idx, k) // Erases k characters after idx
s.erase(itr) // Erases character at itr
s.erase(first, last) // Erases character in range [first, last)
Let's look at how to use each overload one by one.
Erase Single Character from Given Positionstring erase() function can be used for erasing a single character from the specific position in the string.
Syntax C++
Parameters
Return Value
#include <iostream>
#include <string>
using namespace std;
int main() {
string s("Hello World!");
// Deletes character at position 4
s.erase(s.begin() + 4);
cout << s;
return 0;
}
Erase Range of Characters
We can also erase a range of characters from the string using string erase() function.
Syntax C++
Parameters
Return Value
#include <bits/stdc++.h>
using namespace std;
int main() {
string s("Hello World!");
// Define the range as the word "Hello "
auto first = s.begin();
auto last = s.begin() + 6;
// Remove the range [first, last)
s.erase(first, last);
cout << s;
return 0;
}
Erase k Characters After Given Position
The below version erases all the characters after the given index, but we can also limit the number of characters to be deleted using string::erase.
Syntax C++
Parameters
Return Value
#include <bits/stdc++.h>
using namespace std;
int main() {
string s("Hello World!");
// Deletes 5 characters starting from index number 0
s.erase(0, 5);
cout << s;
return 0;
}
Erase All Characters After Given Position
string erase() function can also be instructed to erase the characters after some given position.
Syntax C++
Parameters
Return Value
#include <bits/stdc++.h>
using namespace std;
int main() {
string s("Hello World!");
// Deletes the word " World!"
s.erase(5);
cout << s;
return 0;
}
Erase All Characters
The string erase() function is able to delete all the characters of the string effectively clearing it. The length of the string will be reduced to 0.
Syntax C++
Parameter
Return Value
#include <bits/stdc++.h>
using namespace std;
int main() {
string s("Hello World!");
// Erasing string using string::erase()
s.erase();
cout << s;
return 0;
}
Output
(no output)string erase() vs string clear()
The string clear() is a function used to erase the contents of the string, but it is a lot different from string erase(). Below is the table that lists the major differences between string erase() and string clear().
Aspectstring::erase()
string::clear()
Purpose Removes specific characters or a range of characters. Removes all characters from the string. Syntax erase(position);
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4