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 :

Recherche de mots


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de stallaf
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 79
    Par défaut Recherche de mots
    Bonjour à tous,
    Je sèche sur le problème suivant :
    J'ai un premier fichier texte qui sert de dictionnaire (il sera trié) et ou les mots sont enregistrés chacun sur une ligne, soit par ex :
    chose
    machin
    truc
    Ensuite j'ai un second fichier texte contenant une phrase sur une ligne dont chacun des mots doit être recherché dans le dico pour en vérifier la présence (en vue de compléter ensuite le dico) , soit par exemple :
    J'aime la chose, avec du machin et beaucoup de Trucs.
    Cette phrase doit être débarrassée de sa ponctuation et de ses majuscules pour être valablement comparée (par des fonctions adéquates).
    Le dico est chargé en mémoire dans un tableau de caractère t[][].
    Comment articuler la suite ? Je n'y arrive pas. Auriez-vous une piste ? Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 532
    Par défaut
    Cas classique de recherche dans un arbre binaire : il faut stocker les mots du dico dans un arbre binaire puis selon la lettre tu recherches dans un noeud la première lettre puis la seconde etc..
    Regarde dans les tutos PRomuald en a fait un très bon sur les arbres binaires..
    Sinon pour faire un peu basique, il suffit de mettre les mots dans une liste chainée et de faire une comparaison avec un bête strcmp()

  3. #3
    Membre confirmé Avatar de stallaf
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 79
    Par défaut
    Salut Mat.M
    C'est justement l'extraction des mots de ma phrase dans un tableau de caractères qui me pose problème...

  4. #4
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Cas classique de recherche dans un arbre binaire : il faut stocker les mots du dico dans un arbre binaire puis selon la lettre tu recherches dans un noeud la première lettre puis la seconde etc..
    Regarde dans les tutos PRomuald en a fait un très bon sur les arbres binaires..
    Sinon pour faire un peu basique, il suffit de mettre les mots dans une liste chainée et de faire une comparaison avec un bête strcmp()
    ça m' etonnerait que quelqu' un qui ne sait pas extraire un mot d' une phrase connait les arbres binaires.
    faudrait peut etre trouvé autres choses.

  5. #5
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 532
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 532
    Par défaut
    Citation Envoyé par stallaf Voir le message
    Salut Mat.M
    C'est justement l'extraction des mots de ma phrase dans un tableau de caractères qui me pose problème...
    Je crois que la solution la plus souple et plus performante c'est passer par des listes chainées...
    sinon à chaque fois il va falloir que tu réalloues un tableau de char[] avec malloc et realloc...

    Est-ce que je me fais comprendre ?

    Citation Envoyé par darrylsite Voir le message
    ça m' etonnerait que quelqu' un qui ne sait pas extraire un mot d' une phrase connait les arbres binaires.
    faudrait peut etre trouvé autres choses.
    Eh bien justement on attend la réponse...
    J'ai déjà donné un autre solution

  6. #6
    Membre confirmé Avatar de stallaf
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 79
    Par défaut
    Bien, je reviens sur le sujet car je ne trouve pas de solution.
    Les étapes franchies sont les suivantes :
    - Le dico est chargé en mémoire ;
    - Il est trié grâce à qsort() ;
    - Ma fonction de recherche dichotomique fonctionne ;
    - La phrase dont les mots sont à rechercher a été débarrassée de sa ponctuation et de ses majuscules par deux fonctions ad hoc.

    L'énoncé m'oblige à comparer chaque mot de ma phrase avec le dico au moyen de la fonction dichotomie. Je devrais ensuite, lorsqu'un mot est inconnu du dico, proposer son enregistrement en fin de fichier et trier de nouveau le dico, puis rechercher le mot suivant...

    Comment transmettre à ma fonction dichotomie chaque mot de la phrase ?

  7. #7
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Donc, maintenant, chaque mot de la phrase est séparé du suivant par un caractère blanc.
    Tu peux isoler chaque mot en t'aidant de la fonction strtok.

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

Discussions similaires

  1. Recherche sur mots de 3 lettres
    Par mamizo dans le forum Bases de données
    Réponses: 7
    Dernier message: 16/02/2005, 14h59
  2. [TP]Recherche de mots dans un Doc.
    Par Loceka dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 04/10/2004, 19h04
  3. Recherche des mots contenant ...
    Par Asdorve dans le forum Langage SQL
    Réponses: 3
    Dernier message: 18/06/2004, 10h23
  4. Réponses: 10
    Dernier message: 22/05/2004, 13h51
  5. Recherche multi-mots sur une seule colonne
    Par Badiste dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2004, 11h24

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