El problema del scanf es que te rescata hasta que encuentra un espacio, por ejemplo si agregas un string de datos:
scanf("%s", cadena); <---------- ojo sin &
Eso te rescata hasta que encuentre un espacio, (Ejemplo: Hola a todos, solo te rescata Hola) luego puedes hacer esto:
scanf("%s %s %s", nombre, apellido, otromas); <---- fijate que llevan un espacio entre ellos
Si te interesa rescatar con espacios, esto lo metes en diversos string (cadenas de char o punteros de char), el problema de esto es que generalmente no sabes cuantos string te van a pasar.
Si te interesa buscar mas documentacion sobre entrada estandar ve a:
http://c.conclase.net/librerias/libreria.php?lib=stdio
Salu2!