std::string::erase in C++
The function erases a part of the string content, shortening the length of the string. The characters affected depend on the member function version used:
Return value : erase() returns *this.
Time Complexity : O(n) , n=length of string
Auxiliary Space: O(1) for all approaches
- Syntax 1: Erases all characters in a string
string& string ::erase ()
CPP
#include <iostream>
#include <string>
using namespace std;
void eraseDemo(string str)
{
str.erase();
cout << "After erase() : " ;
cout << str;
}
int main()
{
string str( "Hello World!" );
cout << "Before erase() : " ;
cout << str << endl;
eraseDemo(str);
return 0;
}
|
Output:
Before erase() : Hello World!
After erase() :
2. Syntax 2: Erases all characters after position ‘pos’
string& string ::erase (size_type pos)
- Throw out_of_range if idx > size().
CPP
#include <iostream>
#include <string>
using namespace std;
void eraseDemo(string str)
{
str.erase(1);
cout << "After erase(idx) : " ;
cout << str;
}
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
3. 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
#include <iostream>
#include <string>
using namespace std;
void eraseDemo(string str)
{
str.erase(1, 4);
cout << "After erase : " ;
cout << str;
}
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!
4. 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
#include <iostream>
#include <string>
using namespace std;
void eraseDemo(string str)
{
str.erase(str.begin() + 4);
cout << "After erase : " ;
cout << str;
}
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!
5. 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
#include <iostream>
#include <string>
using namespace std;
void eraseDemo(string str)
{
str.erase(str.begin() + 0, str.end() - 6);
cout << "After erase : " ;
cout << str;
}
int main()
{
string str( "Hello World!" );
cout << "Before erase : " ;
cout << str << endl;
eraseDemo(str);
return 0;
}
|
Output:
Before erase : Hello World!
After erase : World!
Related Article : std::string::clear
If you like GeeksforGeeks (We know you do!) and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org.
Last Updated :
14 Feb, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...