Programación General > C/C++

 C : ELIMINAR ESPACIOS EN BLANCO DE UNA CADENA

<< < (4/5) > >>

Eternal Idol:
tmp siempre que no es NULL es un puntero a un espacio (' ') dentro de la cadena original (h en este caso) entonces sprintf le da formato.

sprintf(tmp,"%s",tmp+1);

Por ejemplo:
tmp = " PROBANDO ESTO - CHE";
tmp + 1 = "PROBANDO ESTO - CHE";

entonces tmp pierde el espacio del principio mediante una copia.

fachamix:

--- Cita de: "Eternal Idol" ---tmp siempre que no es NULL es un puntero a un espacio (' ') dentro de la cadena original (h en este caso) entonces sprintf le da formato.

sprintf(tmp,"%s",tmp+1);

Por ejemplo:
tmp = " PROBANDO ESTO - CHE";
tmp + 1 = "PROBANDO ESTO - CHE";

entonces tmp pierde el espacio del principio mediante una copia.
--- Fin de la cita ---

perfecto hasta aqui, pero suponiendo que la cadena sea "HOLA FORO SOLOCODIGO", sin espacio al principio:

tmp = "HOLA FORO SOLOCODIGO";
tmp + 1 = "FORO SOLOCODIGO";

supuestamente como lo entiendo, perderia la primera palabra ,.... aunque ya vi queno es asi, que si funciona bien, pero no se porque NO PIERDO LA PRIMER PALABRA  :argh:   :brickwall:

Eternal Idol:
"HOLA" esta atras del espacio con el que comienza tmp, strchr retorno ese puntero justamente.

Si h es 0x1010 entonces la primera vez que llamas a strchr retorna 0x1015.

fachamix:
y en que parte del codigo voy almacenando la cadena sin espacios en h ???

Eternal Idol:
tmp es un puntero dentro de la cadena original (h), cuando haces el sprintf la esta modificando de la manera que ya se menciono ...

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa