Удалить символы в указанных местах - PullRequest
0 голосов
/ 03 ноября 2019

Я не могу написать код для удаления символов. Диапазон удаления указывается пользователем.
Пример: Hello, World! позиций 6,7 . Результат - HelloWorld!

Проблема с кодом: Результат: Hello, rld!
str.erase (n, nm + 1);

int m = 0, n = 0;
string str;
cout << "Please, enter a string: ";
getline(cin, str);
cout << "Please, enter a value of start and end positions: ";
cin >> m >> n;
str.erase(n, n-m + 1);
cout << "Result: " << str << endl;
system("PAUSE");
return EXIT_SUCCESS;

1 Ответ

0 голосов
/ 03 ноября 2019

Первый аргумент erase - это индекс (на основе 0) первого удаляемого символа. Вы даете ему индекс на основе 1 для последнего символа , который необходимо удалить.

Исправьте это:

str.erase(m-1, n-m + 1);
...