Discussion:Strcmp
- Admissibilité
- Neutralité
- Droit d'auteur
- Article de qualité
- Bon article
- Lumière sur
- À faire
- Archives
- Commons
Implémentation[modifier le code]
J'ai un doute sur l'implémentation proposée : les ++ ne peuvent-ils pas être appliqués avant ou après le test (*s1 != '\0')
selon le compilateur ? Si c'est avant, la comparaison de deux chaînes vides renverra n'importe quoi. --NicoV (d) 19 avril 2013 à 14:24 (CEST)
Ce code va planter[modifier le code]
En effet, dans le while(), les ++ sont appliqués avant que le test sur *s1!='\0' ne soit effectué (règle du C). Or, si *s1==0 avant le 1er test dans le while (cas où *s1==0 dès le départ), dans ce même test s1 est incrémenté quoi qu'il arrive, et donc dans le test *s1!=0, s1 est déjà un caractère plus loin que son '\0', et donc *s1 a une valeur indeterminée. Je vous suggère de consulter cette discussion. Il faut donc écrire while(*s1!='\0' && *s1++ == *s2++) --Edgarjacobs (discuter) 9 août 2014 à 23:25 (CEST)