Programación General > C/C++
C : ELIMINAR ESPACIOS EN BLANCO DE UNA CADENA
haevan:
--- Cita de: "m0skit0" ---Es lógico porque no has reservado memoria. char *tmp está muy bien, pero no te reserva la memoria para la futura cadena.
Tienes 2 opciones: o usas malloc() o defines un vector de tamaño fijo, rollo char tmp[256].
--- Fin de la cita ---
no lo pillo, no vuelco los datos a tmp, solo le hago apuntar a una direccion de memoria que me devuelve strchr, no entiendo que tenga que reservar memoria
Yonimiler:
No se desgasten miren que facil:
string cadena = "Frase con espacios en blanco";
cadena = cadena.Replace ( " ", "" );
czealt:
La solucion de Yonimiler esta muy bien si se utiliza C++ :D
Otra solución usando strcpy en lugar de sprintf:
--- Código: Text --- char h[]="Hola foro solo codigo"; char *tmp; while((tmp=strchr(h,' '))!=NULL) strcpy(tmp,tmp+1); printf("%sn",h); Saludos!
Edit: Ja ja ja no me di cuenta que era un hilo un tanto viejo :wacko:
DarknessZ3R0:
Buenas yo logre hacer esto hace poco quizas ayude a gente que ocupe ayuda con el código :jumpie:
void quitaEspacio(char c[])
{
int i=0,j;
while(c){
if(c==' ' && c[i+1]==' ')
for(j=i+1;c[j];j++)
c[j]=c[j+1];
else
i++;
}
}
Navegación
[*] Página Anterior
Ir a la versión completa