Как удалить подстроку из строки методом erase? c++
Для заполнения стека нужно ввести "push какое-то число"". Я записываю это в строку, затем пытаюсь удалить из нее подстроку начиная с 0-ого символа по 4-ый символ, чтобы строка содержала только число, которое я позже преобразую к int и благополучно запихаю в стек. Что я делаю не так? Пробовал также str = str.erase (0,3)
#include <iostream>
#include <string>
int main()
{
using namespace std;
string str = "";
cin >> str;
str.erase(0, 4);
cout << str;
Ответы (1 шт):
Автор решения: KoVadim
→ Ссылка
Почему не работает код. да все просто - cin >> str; вводит до первого пробела, потому что str - строка. Вот и все. Меняем немного
#include <iostream>
#include <string>
int main()
{
using namespace std;
string str;
int n;
cin >> str >> n;
cout << "строка " << str << " число " << n;
}
и все работает. Если же хочется всю строку, что бы сохранить оригинальную идею - std::getline.
std::string str;
std::getline(std::cin, str);
str.erase(0, 5);
cout << str;