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

C Discussion :

probleme avec un strcmp


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut probleme avec un strcmp
    Bonjour,

    j'ai un gros souci au niveau de la comparaison d'une chaine de caractère rentrée au clavier. J'effectue un strtok pour connaitre le premier mot tapé. Puis ensuite j'affiche ce premier mot, jusque là tout va bien. Mais ensuite lorsque j'effectue un strcmp(mot, "mottape") le strcmp ne me renvoi jamais la valeur 0 (cas ou les deux chaines sont égales). Si vous avez une explication elle est la bienvenue. Bonne fine de journée

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    void * Commande(void *name) //THREAD QUI ANALYSE LES COMMANDES 
    {
    	while(1)
    	{
    		char * ligne= (char * ) malloc(200 * sizeof(char)) ;	
    		ligne = fgets(ligne,200,stdin) ;
     
    		char * commande ;
    		commande = strtok(ligne, " ") ;
     
    		printf("%s\n", commande) ;
    		if (strcmp(commande, "/quit")==0)
    		{	
     
    			int k ;
    			for(k=0 ; k<50 ; k++)
    			close(a[k]) ;
     
    			close(s) ;
    			exit(-3) ;
    		}
     
    	}
     
     
     
    }

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 392
    Par défaut
    1. On ne caste pas le retour de malloc() en C.
    2. Essaie de remplacer ainsi ton printf(), tu devrais voir le problème:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      printf("\"%s\"\n", commande);
    3. Indente le close() dans ton for.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 189
    Par défaut
    J'ai fais le strcmp de cette manière ci et ça conftionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (strcmp(commande, "/quit\n")==0)
    pourquoi est ce que strtok me rajoute un /n à la fin ?

  4. #4
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    fgets met aussi dans le buffer le \n saisi au clavier

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

Discussions similaires

  1. probleme avec strcmp()
    Par moman dans le forum Débuter
    Réponses: 2
    Dernier message: 25/04/2012, 11h44
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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