Programación General > C/C++
C : ELIMINAR ESPACIOS EN BLANCO DE UNA CADENA
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
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa