IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

fonction strcmp renvoie 2 ?


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Par défaut fonction strcmp renvoie 2 ?
    Bonjour à tous,

    Dans un de mes scripts qui me permet de retrouver une adresse IP spécifique dans un fichier txt contenant une liste d'adresses, j'utilise la fonction strcmp.

    A priori cette fonction est sensée me renvoyer soit '-1', '+1', ou '0' lorsque ma chaine contenant mon adresse recherchée, est trouvée dans une des lignes de mon fichier, or bizarrement, lorsque justement cette ligne est retrouvée dans mon fichier, cette fonction ne me renvoie non pas '0' mais '2'

    Est-ce normal ? ou l'un de vous saurait-il pourquoi j'obtiens ça ?

    Un grand merci !

    Bonne journée

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 17

  3. #3
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Oui c'est normal, lit bien la documentation :

    Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.
    Un nombre inférieurà 0 (pas forcément -1) si str1 < str2, et un nombre supérieur à 0 (pas forcément 1) si str2 > str1.

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Par défaut
    merci pour vos réponses

    en fait ce n'est pas vraiment le fait que ce soit égal à 2 qui me dérange mais surtout le fait qu'il m'indique ce 2 seulement lorsque la ligne de mon fichier est identique à la saisie.
    alors que si je comprends bien il devrait me renvoyer 0 pour ce cas précis puisque sur cette ligne on a str1=str2

  5. #5
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Elle ne le sont probablement pas. Un espace en trop ou en moins, et les chaînes ne sont plus égales.

    Un "var_dump()" sur chacune de tes deux chaînes doit te donner exactement la même chose.

    De plus, "bin2hex()" sur chacune de tes deux chaînes doit également te renvoyer la même chose.

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 6
    Par défaut
    effectivement le passage en ASCII m'a permis de mieux voir ce qui différenciait mes deux chaines (ici, le retour chariot)

    un grand merci pour votre aide rapide et efficace !


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 31
    Dernier message: 25/10/2005, 18h26
  2. Fonction qui renvoie erreur dans mon état
    Par Daniel MOREAU dans le forum Access
    Réponses: 1
    Dernier message: 20/10/2005, 12h40
  3. [bioinfo] fonction qui renvoie chaîne à autre fonction
    Par perlaud dans le forum Bioinformatique
    Réponses: 11
    Dernier message: 16/07/2004, 15h06
  4. procedures/fonctions stockees : renvoi de plusieurs parametr
    Par Spoutnik dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 11/05/2004, 11h53
  5. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo