Метод erase
Метод erase класса string удаляет указанную часть строки. Строка изменяется прямо на месте - метод возвращает ссылку на саму строку. Первым параметром метод принимает позицию, с которой нужно начинать удаление, а вторым - количество удаляемых символов.
Если второй параметр не указан, удаляются все символы от заданной позиции до конца строки. Существует также перегрузка, принимающая итератор, - она удаляет один символ по указанной позиции.
Синтаксис
str.erase(pos, [count])
str.erase(iterator)
Пример
Давайте удалим 3 символа из строки с позиции 1 (со второго символа, так как первый имеет номер 0):
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
str.erase(1, 3);
cout << str << endl;
return 0;
}
Результат выполнения кода:
"ae"
Пример
Давайте удалим все символы до конца строки, начиная со второго (он имеет номер 1):
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
str.erase(1);
cout << str << endl;
return 0;
}
Результат выполнения кода:
"a"
Пример
Давайте удалим один символ по итератору, полученному через метод begin:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
str.erase(str.begin() + 2);
cout << str << endl;
return 0;
}
Результат выполнения кода:
"abde"