Problem dans la boucle while
Résolu/Fermé1 réponse
Utilisateur anonyme
Modifié par le père. le 15/09/2015 à 21:25
Modifié par le père. le 15/09/2015 à 21:25
Bonjour
Si, le résultat est bien BD
-s pointant initialement sur A, tu testes while(*s++). s pointe maintenant sur B
- tu imprimes ce B avec printf("%c",*s++) donc tu incrémentes s : s pointe maintenant sur C
- tu testes à nouveau ta condition de bouclage while(*s++) donc tu incrémentes encore s : s pointe maintenant sur D
- tu imprimes ce D...
À chaque boucle, tu incrémentes s deux fois. C'est d'ailleurs très dangereux, tu ne testes qu'un caractère sur deux pour arrêter ta boucle et si tu avais initialisé ta chaîne avec un nombre impaire de caractères, tu passais par-dessus le caractère null de fin de chaîne et tu partais dans le décor...
Si, le résultat est bien BD
-s pointant initialement sur A, tu testes while(*s++). s pointe maintenant sur B
- tu imprimes ce B avec printf("%c",*s++) donc tu incrémentes s : s pointe maintenant sur C
- tu testes à nouveau ta condition de bouclage while(*s++) donc tu incrémentes encore s : s pointe maintenant sur D
- tu imprimes ce D...
À chaque boucle, tu incrémentes s deux fois. C'est d'ailleurs très dangereux, tu ne testes qu'un caractère sur deux pour arrêter ta boucle et si tu avais initialisé ta chaîne avec un nombre impaire de caractères, tu passais par-dessus le caractère null de fin de chaîne et tu partais dans le décor...