Hola:
Nostromo tiene razón, es bastante sencillo. Sin embargo hay un par de tonterías que debes saber.
Debes reservar bastante sitio en cadena para que quepa lo que vas a leer
char cadena[1000];
scanf ("%s", cadena);
Con esto puedes leer hasta 999 caracteres. Uno queda reservado para fin de cadena. En ningún caso te vale algo como esto
char *cadena;
scanf ("%s", cadena);
Otro tema es que scanf() deja de leer al encontrar un espacio, tabulador, etc, etc. Por ello, en cadena se meterá sólo la primera palabra de todo lo que escribas.
Si quieres leer una frase completa compuesta de varias palabras, usa funciones como fgets() o gets(), que leen hasta el final de linea.
Si estás empeñado en el scanf(), hay un truco (pero no recuerdo muy bien como) que consiste en poner un formato especial en "%s", de forma que no se para en los espacios, sino en el caracter que tú quieras, que puede ser el final de linea. Si tienes interés dímelo y trataré de recordarlo (encontrarlo).
Se bueno.