Programación General > C/C++

 C : ELIMINAR ESPACIOS EN BLANCO DE UNA CADENA

<< < (5/5)

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

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa