[C con Clase] Dudas con variables...

Steven Davidson srd4121 en njit.edu
Mie Jun 4 22:31:20 CEST 2008


Hola Stereo,

Stereo System wrote:
>     Muchas grancias por la funcion...
>      
>     Ahora nesecito eliminar los espacios en blanco, ¿Que funcion
>     nesecito usar?
>     He buscado en google pero no encuentro nad...
>      
>     PD: En PHP usaria la funcion trim(); en C++ cual seria ? 
> 

No existe una función estándar que realice la misma tarea de 'trim()'.
Lo que puedes hacer es usar la funcidn 'remove()' en <algorithm> para
buscar todas las apariciones de un carácter en un intervalo de
elementos. Por ejemplo,

string str;
...
remove( str.begin(), str.end(), ' ' );  // Eliminamos todos los espacios

Si quieres algo más complicado, como una cadena de caracteres que
quieres eliminar, entonces tendrás que usar una función para buscar la
primera aparición, como puede ser 'string::find_first_of()'. Por ejemplo,

string str = "   \ttest \ttest\r\n \r\t   test";

string::size_type n = 0;
while( string::npos != (n=str.find_first_of(" \t\r\n\v\f", n)) )
   str.erase( n, 1 );

Aquí, buscamos cualquier carácter de esa cadena y lo eliminamos en 'str'.

También podemos usar la clase 'stringstream'. Por ejemplo,

stringstream ss( str );
str.clear();

string aux;
while( ss >> skipws >> aux )
   str += aux;


Espero que esto te sirva.

Steven







Más información sobre la lista de distribución Cconclase