Discussion:Strcmp

Le contenu de la page n’est pas pris en charge dans d’autres langues.
Une page de Wikipédia, l'encyclopédie libre.
Autres discussions [liste]
  • 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)[répondre]

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)[répondre]