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 :

strcmp


Sujet :

C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Points : 27
    Points
    27
    Par défaut strcmp
    Salut,

    Je veut comparer deux fichier:
    je recupere une ligne de chaque fichier pour supprimer tous les blancs
    fgets(fi1,taille, file1);
    fgets(fi2,BUFFSIZE, file2);

    retrait_blanc (buf1, ligne1);
    retrait_blanc (buf2, ligne2);
    Ensuite je veut comparer donc j'appel strcmp(ligne1,ligne2) si il detecte une difference je veut recuperer le caractère sur lequel il s'est arrété.

    Suis je obligé de placer un compteur sur les caractere et faire une comparaison caractere par cartere ou puis je lui dire des que tu detecte une difference place le caractère dans tel variable?

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut Re: strcmp
    Citation Envoyé par Nalido
    Suis je obligé de placer un compteur sur les caractere et faire une comparaison caractere par cartere ou puis je lui dire des que tu detecte une difference place le caractère dans tel variable?
    oui, strcmp retourne juste -1, 0 ou 1 mais pas l'indice du début de la différence. Une p'tite boucle for est c'est fini

    [edit]Euh plus précisemment, ce n'est pas -1, 0 ou 1 mais une valeurs négatives, nulle ou positives, enfin ça ne change rien au problème[/edit]

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Points : 27
    Points
    27
    Par défaut
    merci

  4. #4
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    stp

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Points : 27
    Points
    27
    Par défaut
    Pas resolu du tout mais je planche...
    je doit faire plusieur chose à la fois et l'imbrication de plusieur boucle je maitrise pas
    ...
    mais l'idée c'est


    for (courant = getc(file1); EOF != courant; courant = getc(file1)){

    if (strcmp(ligne1, ligne2)==0){
    c++
    fgets(ligne1,c,file1)
    }
    ...

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par Nalido
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for (courant = getc(file1);  EOF != courant; courant = getc(file1)){
     
    	if (strcmp(ligne1, ligne2)==0){
    		c++
    		fgets(ligne1,c,file1)
    	}
    Je ne suis pas sûr qu'utiliser deux fonctions différentes pour récupérer le contenu du fichier soit une bonne idée (choisie entre fgetc et fgets).
    Ensuite est-ce que ligne1 est initialisée à autre chose qu'à NULL (strcmp ne suporte pas les paramètres NULL) avant la boucle for ? sinon au premier tour de boucle il peut arriver n'importe quoi.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Points : 27
    Points
    27
    Par défaut
    en fait pour etre plus clair

    je prend deux lignes de deux fichiers differents

    je les comparent et je veut savoir lorsqu'il y a difference si il s'agit d'un caractere alpha ou non.

    Donc mon compteur c pour pouvoir aller lire le bon caractere et tester si c de l'alpha.

    getc prend un caractere dans un fichier mais je n'est pas la possibiliter de lui dire lequel c'est pour cela que j'ai pris fgets...

  8. #8
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par Nalido
    je prend deux lignes de deux fichiers differents
    désolé je n'avait pas vu qu'il s'agissait de deux flux différents. Par contre pour la remarque concernant ligne1 ça ne change rien.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 64
    Points : 27
    Points
    27
    Par défaut
    Comment faire pour recuperer uniquement le caractère qui m'interesse dans une ligne car fgets recupère tous les caracteres jusqu'au iéme
    fgets(chaine,i,fichier)
    il faut que j'ajoute en plus un cat ou un truc dans le genre?

Discussions similaires

  1. Probleme sur fonction strcmp
    Par Invité dans le forum C
    Réponses: 8
    Dernier message: 10/01/2006, 00h02
  2. Problème avec strcmp ...
    Par Mike888 dans le forum C
    Réponses: 3
    Dernier message: 24/12/2005, 14h22
  3. strcmp me fait des siennes...
    Par esp dans le forum Langage
    Réponses: 2
    Dernier message: 08/09/2005, 11h43
  4. Utilisation de strcmp!
    Par fmv12 dans le forum C
    Réponses: 10
    Dernier message: 30/10/2003, 12h22
  5. caractère générique utilisable dans strcmp
    Par barthelv dans le forum C
    Réponses: 9
    Dernier message: 01/08/2003, 16h54

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