string, find_first_of() y remove()

Si continuamos con el conocimiento de C++ y el tratamiento de sus strings podremos ver cosas relativamente útiles que en mi caso, he utilizado recientemente.

Imaginemos que tenemos una cadena con un nombre de fichero, y como no, queremos cambiar la extensión de ese fichero. Concretamente “Fichero.txt” a “Fichero.xml”

#include <string>

{
   string sFileName("Fichero.txt");

   unsigned int iPointPos = (unsigned int)sFileName.find_first_of(L".");
   unsigned int iFinalPos = (unsigned int)sFileName.size();
   sFileName.erase(iPointPos,iFinalPos - iPointPos);
   sFileName = sFileName + ".xml";
}

Como podemos observar en el código anterior, es una forma rápida y sencilla siempre y cuando partamos de la base de que la string solo contendrá un punto.

Los pasos son, buscamos la posición del primer punto, obtenemos la distancia total de la cadena, borramos desde el punto hasta el final y concatenamos la extensión que queramos.

NOTA: Otra opción es ir a buscar no el primer punto sino el último.

Un saludo

Escribe un comentario

Tienes que iniciar sesión para escribir un comentario.