Как я могу удалить последний знак из строки C++?
Я попробовал st = substr(st.length()-1);
Но это не работало.
Для не мутирующей версии:
st = myString.substr(0, myString.size()-1);
if (str.size () > 0) str.resize (str.size () - 1);
Альтернатива std::erase хороша, но мне нравится "- 1" (неважно, на основе размера или конечного итератора) - на мой взгляд, это помогает выразить намерение.
BTW - действительно ли не существует std::string::pop_back? - кажется странным.
buf.erase(buf.size() - 1);
Предполагается, что вы знаете, что строка не пуста. В этом случае вы получите исключение out_of_range
.
int main () {
string str1="123";
string str2 = str1.substr (0,str1.length()-1);
cout<<str2; // output: 12
return 0;
}