programme c sur l’inversion d’une phrase

Dupliquer possible:
Étant donné un tableau de caractères formant une phrase de mots, donnez un algorithme efficace pour inverser l’ordre des mots (pas des caractères).

Par exemple, si je donne une entrée sous la forme “Ceci est une chaîne”, je devrais obtenir le résultat sous la forme “chaîne a est This”, je ne peux me faire une idée de la façon de procéder

Tout d’abord inverser la chaîne en place

Puis inversez chaque mot en place (les mots sont délimités par un espace)

Vous devez trouver tous les mots, puis les imprimer dans l’ordre inverse. Rappelez-vous juste qu’ils sont séparés par des espaces. 😉

#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