#include <stdio.h>
#include <stdlib.h>
void quitaespacios(char *cadena, char *cadenasin);
int main()
{
char *cad,*cadsin,vaciar;
int numcaracteres;
//Leemos cuántos caracteres tiene la cadena
printf("Indique cuántos caracteres tiene la cadena: ");
scanf("%d",&numcaracteres);
/*Reservamos espacio para las cadenas */
// Tiene numcaracteres caracteres de tipo char
cad=(char*)malloc(sizeof(char)*(numcaracteres+1));
cadsin=(char*)malloc(sizeof(char)*(numcaracteres+1));
//Leemos la cadena
printf("Introduzca la cadena: ");
while ((vaciar = getchar()) != EOF && vaciar != '\n');
//fflush( stdin );
fgets(cad, numcaracteres-1,stdin);
quitaespacios(cad,cadsin);
//Imprimimos el resultado
printf("La cadena es %s",cadsin);
//liberamos memoria
free (cad);
free (cadsin);
return 0;
}
//Función que devuelve la misma cadena que se le pasa como argumento pero sin espacios
void quitaespacios(char *cadena, char *cadenasin)
{
int i,j;
i=0;
j=0;
while (*(cadena+i)!='\0') {
if(*(cadena+i)!=' ')
{
*(cadenasin+j)=*(cadena+i);
j++;
}
i++;
}
}