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 :

Comment retrouver une chaine de caractères parmis d'autres..


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par défaut Comment retrouver une chaine de caractères parmis d'autres..
    Salut,

    Je cherche un moyen efficace et sûre pour retrouver une chaîne de caractères parmis plusieurs autres, c'est à dire des doublons. Je m'explique:

    J'ai 2 fichiers texte, tous 2 contenant des mots, comme ceci:

    Fichier1.txt=

    MOTS1
    MOTS2
    MOTS3
    MOTS4
    MOTS5
    etc...

    Fichier2.txt=

    MOTS16
    MOTS17
    MOTS1
    MOTS18
    MOTS4

    Comme vous le voyez les doublons sont: MOTS1 et MOTS4.
    Il ce peux qu'il y'est un mot qui est dans un fichier mais pas dans l'autre et vice versa.
    Je pense qu'on ne peux pas se contenter d'un simple strcmp() de chaque chaîne, car il peux y'avoir une nombre indeterminé de mots et puis l'algo est trop lourd si on reprends chaine par chaine et on compare avec un mot d'un fichier différent.
    Je cherche un algo qui permet de retrouver les doublons, merci pour ceux qui savent!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 33
    Par défaut Problème de recherche de mots entre 2 fichiers
    Je regarde le problème que tu poses.
    Je pense que l'algorithme à créer peut être différent selon que
    -les mots sont de même longueur ou de longueur quelconque
    -les mots sont rangés ou non dans l'ordre alphabétique dans les fichiers

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par défaut
    Salut mohira,

    Oui j'avais oublié de préciser que mes mots sont déjà classés par ordre alpha.
    A+

  4. #4
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Je ne comprend pas ce que tu veux.

    Est ce que tu chercher a trouver les doublont réel, c'est a dire deux chaine de caractere strictement identique, ou cherche tu a trouver une portion de chaine dans une autre ?

    Si tu veux trouver deux chaine identique et que ta liste est triées par ordre alphabetique, il suffit de les comparer deux a deux, deux doublon etant cote a cote, pas besoins de chercher autre part.

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Par défaut
    Salut,

    Des chaînes strictement identiques, mais le problème c'est que même si c'est dans l'ordre alpha, ça ne marchera pas vu qu'il n'y a pas le même nombre de mots dans les 2 fichiers, donc 2 mots différent peuvent se retrouver côte à côte...

    A+

  6. #6
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 084
    Par défaut
    Je n'avais pas compris cela comme ca.

    Si il n'y a pas de doublon dans un fichier, tu peux faire comme ca :

    Tu parcours un fichier totalement.
    A chaque fois que tu as un mot dans le fichier 1, tu parcours le fichier 2 du debut tant que strcmp te renvoi un nombre inferieur.
    A la sortie de cette boucle while, tu teste si strcmp a fais sortir car il a renvoyé 0.
    S'il a renvoyé 0 -> doublons -> a supprimer.

Discussions similaires

  1. [C#] Comment inverser une chaine de caractères ?
    Par just1980 dans le forum Contribuez
    Réponses: 6
    Dernier message: 01/05/2011, 20h35
  2. Réponses: 3
    Dernier message: 01/02/2006, 18h26
  3. Réponses: 2
    Dernier message: 03/10/2005, 16h23
  4. Réponses: 2
    Dernier message: 14/01/2005, 15h40
  5. comment vider une chaine de caractère
    Par gaut dans le forum C
    Réponses: 13
    Dernier message: 12/09/2003, 11h30

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