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 :

Problème pour comparer deux mots


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Par défaut Problème pour comparer deux mots
    Bonjour à tous, mon but est de rechercher un mot parmi beaucoup d'autres (ces mots proviennent d'un fichier texte). Le mot que je veux rechercher est entré par l'utilisateur du programme...
    Mais je n'arrive pas à comparer les deux chaines entres elles avec la fonction "strcmp" car les mots provenant du fichier texte sont lut avec la fonction "fgets" et donc cela lit également "\n". Avez vous une idée pour ne pas lire le "\n"... et ainsi pouvoir les comparer.
    Merci beaucoup de votre aide

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mot[strlen(mot)-1] = '\0';

  3. #3
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 30
    Par défaut
    Ça marche super... Merci beaucoup, bonne soirée

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Tu peux enlever le '\n' qui a été lu. Typiquement, on fait un strchr() de ce '\n'. S'il est trouvé, on le remplace par un '\0' - ta chaine est alors utilisable avec par exemple strcmp(). S'il n'a pas été trouvé, c'est que la saisie a dépassé le buffer qu'on donne à fgets(), et il faut alors vider les caractères qui restent dans stdin.

  5. #5
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Fredo123456 Voir le message
    je n'arrive pas à comparer les deux chaines entres elles avec la fonction "strcmp" car les mots provenant du fichier texte sont lut avec la fonction "fgets" et donc cela lit également "\n". Avez vous une idée pour ne pas lire le "\n"...
    La lecture du '\n' fait partie du comportement 'normal' de fgets().

    Par contre, on peut supprimer le '\n' proprement après le fgets(). Recherche la fonction fclean() sur le forum, dont le code a été publié ici même de nombreuses fois...

    Sinon :

    http://emmanuel-delahaye.developpez....tes.htm#saisie
    http://emmanuel-delahaye.developpez....s.htm#fichiers

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 14/12/2014, 19h09
  2. Réponses: 8
    Dernier message: 07/08/2006, 09h59
  3. Problème pour lier deux tables
    Par balabonov dans le forum Access
    Réponses: 8
    Dernier message: 21/12/2005, 13h13

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