Quitar espacios de una cadena 2 en C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void quitaespacios(char cadena [100], char cadenasin[100]);
int main()
{
 char cad[100],cadsin[100],vaciar;

 //Leemos la cadena
 printf("Introduzca la cadena: ");
 //fflush( stdin );
 fgets(cad, 100,stdin);
 
 quitaespacios(cad,cadsin);
 
 //Imprimimos el resultado
 printf("La cadena es %s",cadsin); 
 
 return 0;
}

//Función que devuelve la misma cadena que se le pasa como argumento pero sin espacios
void quitaespacios(char cadena [100], char cadenasin[100])
{
 int i,j;
 char *palabra;
 i=0;
 j=0;

 palabra = strtok(cadena, " "); 
 do{
    //Se pasa NULL para indicar que no queremos volver a trocear desde el principio.
   strcat(cadenasin,palabra);
   palabra=strtok(NULL, " ");
 }while(palabra!=NULL);
 return;

}