ciao,
se ti serve inserire un stringa con spazi e caratteri vari e poi stamparla con una printf puoi fare così:

char stringa[MAX_SIZE]; /* ti imposti una dimensione */

printf("Inserisci stringa :");
gets(stringa);
printf("\nStringa inserita: %s", stringa);


se ti serve inserire una stringa grande quanto si voglia, dovresti usare una malloc per allocare dinamicamente la memoria... proverò a farti un esempio più tardi magari se trovo un pò di tempo ( mi serve come esercizio personale :-) ) e ti faccio sapere...

cmq il codice che avevi postato prima era parecchio errato a mio avviso... anke se mi posso anke sbagliare... dato che sono ancora un newbie