Programación General > C/C++

 Borrar espacioes en blanoc de una cadena de caracteres

(1/1)

kikocrak:
Buenas chicos:

Tengo que hacer un programa que elimine los espacios en blanco de una cadena de caracteres, no se donde esta el fallo, no puedo utiolizar funciones.
/* Programa que elimina de una cadena de caracteres espacios en blanco */
#include<stdio.h>
#define N 40

main(){
   
    char cad_esp[N];
    char cad_sinesp[N];
    int i,je;
   
    printf("Introduzca la cadena a eliminar los espacios:");
    scanf("%s",cad_esp);
   
    for(i=j=0;cad_esp!='';i++)
        cad_sinesp[j]=cad_esp;
       
        if(cad_esp==' '){
            cad_sinesp[j]=cad_esp[i+1];
            j++;
        }
       
    cad_sinesp[j]='';

    printf("La cadena sin espacios es: %sn",cad_sinesp);

}


Os agradeceria vuestra colaboracion, muchas gracias.

locazopro:
mira, no lo he probado, pero debería funcionar.


--- Código: C --- #include <stdio.h> int main(){  int i,j=0;  char con_esp[40],sin_esp[40];   printf("Ingrese la cadena:");  scanf("%*c%[^n]",con_esp);    for(i=0;i<40;i++){     if(con_esp[i] != ' '){        sin_esp[j] = con_esp[i];        j++;     }  } printf("La cadena con espacios es %sn",con_esp);printf("La cadena sin espacios es %sn",sin_esp); return -1;}  
tienes que tener cuidado al pedir los datos al usuario, comprobar el total de carácteres y esas cosas aburridas. Me dices si funciona .

saludos!

kikocrak:
Lo primero, muchas gracias, el programa funciona correctamente, lo unico que se come la primera letra, he modificado mi programa siguiendo tus directrices, pero me sigue sin funcionar, te lo muestro:

#include<stdio.h>
#define N 40

main(){
   
    char cad_esp[N];
    char cad_sinesp[N];
    int i=0,j=0;
   
    printf("Introduzca la cadena a eliminar los espacios:");
    scanf("%s",cad_esp);
   
    for(i=j=0;cad_esp!='';i++){
       
        if(cad_esp!=' '){
            cad_sinesp[j]=cad_esp;
            j++;
        }
}
   
    printf("%sn",cad_esp);
}


NO se donde estara el fallo. Muchas gracias de verdad.

locazopro:
haber, el problema no es la lógica de tu programa, es que la función scanf con su parámetro %s no permite capturar espacios en blanco, por lo que ni siquiera estas utilizando la frase que realmente quieres quitarle los espacios. Mira, para mas información ve alguna referencia de C, o algo asi, hay un libro excelente que sirve de referencia que The standard C Library de P.J Plauger.

Saludos!

Navegación

[0] Índice de Mensajes

Ir a la versión completa