Comment faire pour imprimer une chaîne saisie par l'arrière, en C, en utilisant seulement une boucle for

Je veux imprimer une chaîne vers l'arrière. Mais mon code semble compter l'alphabet à partir de la dernière lettre dans le tableau de la première lettre dans le tableau au lieu de compter le tableau lui-même et crachant chaque lettre dans le tableau.

Mon code,

   #include <stdio.h>
   #include <string.h>

   int main(void) {

char word[50];
char end;
char x;

printf("Enter a word and I'll give it to you backwards: ");

scanf("%s", word);

end = strlen(word) - 1;

for (x = word[end]; x >= word[0]; x--) {
    printf("%c", x);
}

return 0;
}

Des suggestions? Merci.

  • votre erreur est que vous n'êtes pas l'élément dans votre tableau, vous obtenez la valeur de votre dernier caractère (exemples la lettre u), alors vous décrémenter la valeur de la lettre et de l'impression que (u, t, s, r...) qui explique votre inverse de l'alphabet
  • J'étais curieux donc j'ai posté dans une autre question stackoverflow.com/questions/4331486/.... et il y a une façon "différente" d'une boucle sur le tableau qui n'impliquent pas de compteur.
  • Puisque vous êtes ici... s'il vous plaît assurez-vous de lire sur les problèmes avec scanf avant de l'utiliser dans la vraie code: stackoverflow.com/questions/2430303/disadvantages-of-scanf
InformationsquelleAutor Corey | 2010-12-02