Удалите последний знак из строки C++

Как я могу удалить последний знак из строки C++?

Я попробовал st = substr(st.length()-1); Но это не работало.

195
задан skazhy 22 February 2010 в 02:56
поделиться

4 ответа

Для не мутирующей версии:

st = myString.substr(0, myString.size()-1);
180
ответ дан 23 November 2019 в 05:19
поделиться
if (str.size () > 0)  str.resize (str.size () - 1);

Альтернатива std::erase хороша, но мне нравится "- 1" (неважно, на основе размера или конечного итератора) - на мой взгляд, это помогает выразить намерение.

BTW - действительно ли не существует std::string::pop_back? - кажется странным.

23
ответ дан 23 November 2019 в 05:19
поделиться
buf.erase(buf.size() - 1);

Предполагается, что вы знаете, что строка не пуста. В этом случае вы получите исключение out_of_range .

18
ответ дан 23 November 2019 в 05:19
поделиться
int main () {

  string str1="123";
  string str2 = str1.substr (0,str1.length()-1);

  cout<<str2; // output: 12

  return 0;
}
8
ответ дан 23 November 2019 в 05:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: