224 votos

Eliminar el último carácter de la cadena de C++

¿Cómo puedo eliminar el último carácter de una cadena de C++?

Lo intenté. st = substr(st.length()-1); Pero no funcionó.

433voto

mpgaillard Puntos 489

Una solución simple. Probablemente el tiempo O(1) también:

st.pop_back();

210voto

Matthieu M. Puntos 101624

Para una versión no mutante:

st = myString.substr(0, myString.size()-1);

24voto

Steve314 Puntos 12599
if (str.size () > 0)  str.resize (str.size () - 1);

Una alternativa de borrado es buena, pero me gusta el "- 1" (ya sea basado en un tamaño o en un enditerador) - para mí, ayuda a expresar la intención.

BTW - ¿Realmente no hay std::string::pop_back? - parece extraño.

20voto

RC. Puntos 15804
buf.erase(buf.size() - 1);

Esto supone que sabes que la cadena no está vacía. Si es así, obtendrás un out_of_range excepción.

9voto

codaddict Puntos 154968
int main () {

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

  cout<<str2; // output: 12

  return 0;
}

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X