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
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez des boucles entre l'élément de tableau de valeurs. Vous souhaitez faire une boucle entre les indices de tableau. Mise à jour de votre boucle à la suivante:
Notez que cela va depuis la dernière mise à zéro et la sortie du caractère à l'indice. Également un micro-optimisation de la boucle à l'aide de pré-décrémentation.
b = 1 + x--;
.b = 1 + x--;
etb = 1 + --x;
vous donnera des résultats différents.Vous appelez tableau de valeurs et non pas l'indice spécifique.
Vous souhaitez imprimer
word[x]
(xe caractère dans le tableau) au lieu dex
(xe caractère dans le jeu).Vous souhaitez vous aussi faire le décompte des indices, pas de caractères.
Dans votre boucle,
x
est l'index dans le tableau de caractères comprenantword
. Doncx
devrait changer à partir deend
à0
, et le référencement, le tableau doit être commeword[x]
.