Progtwig c sobre revertir una oración

Posible duplicado:
Dado un conjunto de caracteres que forman una oración de palabras, proporcione un algoritmo eficiente para invertir el orden de las palabras (no los caracteres) que contiene.

Por ejemplo, si doy una entrada como “Esto es una cadena“, debería obtener la salida como “La cadena a es Esto”. No puedo tener idea de cómo hacerlo.

Primero Invierta la cuerda en su lugar

Luego Invierta cada palabra en su lugar (las palabras están delimitadas por un espacio)

Necesitas encontrar todas las palabras y luego imprimirlas en orden inverso. Solo recuerda que están separados por espacios. 😉

#include void Reverse(char *,char * ); char str[100]; void main(){ char *start,*end,i=0; printf("\nEnter: "); scanf("%[^\n]s",str); //similar to gets() start=str; while(*(str+i)!='\0') i++; end=str+i-1; Reverse(start,end); printf("\nstr:%s",str); end=str; for(i=0;*(str+i)!='\0';i++){ if(*(str+i)==' ' ){ Reverse(start,end-1); start=end+1; end=start; continue; } end++; } Reverse(start,end-1); printf("\nstr:%s",str); } void Reverse(char *start,char *end){ char temp=0,i=0; while(start