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 :

Rechercher une sous-chaine dans une chaine de caractères


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Futur Ingenieur en Informatique
    Inscrit en
    Décembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Futur Ingenieur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 20
    Par défaut Rechercher une sous-chaine dans une chaine de caractères
    Bonsoir !

    je veux savoir si un mot existe ou pas dans notre fichier ,le probleme c'est que le mot que j'ai saisi existe mais le prog me renvoie n'existe pas !
    je sais pas ou est l'erreur est ce que dans mon implementation ou bien dans la fonction strstr(),ou autre .
    est ce que il y'a une autre fonction qui fait la recherche autre que strstr()
    Merci !!




    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
    #include <sys/wait.h>
    #include <string.h>
    #define BUFFER_SIZE 256
     
    int main(void)
    {
     
    unsigned char bufferR[256], bufferW[256];
      FILE *fichier = NULL;
      char chaine[BUFFER_SIZE] = "";
      char *chdecar;
     
     
       fichier = fopen("fichier.txt", "r");
       printf("veillez saisir le mot que vous voulez rechercher:\t");
       scanf("%s",bufferR);
       if (fichier != NULL)
       {
            while (fgets(chaine, BUFFER_SIZE , fichier) != NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL)
            {
              printf("%s", chaine);
             }
          fclose(fichier);  
        }    
     
        chdecar= strstr(chaine,bufferR);
     
        if (chdecar != NULL){
            printf("ce mot existe\n");
           return 1;
         }
        else{
            printf("ce mot n'existe pas\n");
            return 0;
        }
     
     
     
    }

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    heu,
    La fonction strstr() doit être appelée à chaque itération de boucle while.

    Ou bien charger tout le fichier et rechercher sur la chaîne concaténée totale

  3. #3
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    C'est ce qu'il cherche à faire je pense : charger tout le fichier dans un tampon.

    Ton erreur est dans ce bloc (je te laisse chercher un peu ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (fgets(chaine, BUFFER_SIZE , fichier) != NULL) // On lit le fichier tant qu'on ne reçoit pas d'erreur (NULL)
    {
        printf("%s", chaine);
    }

  4. #4
    Membre averti
    Homme Profil pro
    Futur Ingenieur en Informatique
    Inscrit en
    Décembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Futur Ingenieur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 20
    Par défaut
    c'est ce que j'ai fait , j'ai charger tous le fichier dans un tableau de chaine de caractere normalement !
    pourquoi l'erreur est dans la boucle pourtant j'ai essayé de lire chaque ligne de fichier et la copier dans le buffer chaine , je vois pas ou est l'erreur

  5. #5
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par défaut
    Affiche le contenu de ton buffer lorsque la boucle a terminé de s'exécuter, ça devrait te sauter aux yeux.

  6. #6
    Membre averti
    Homme Profil pro
    Futur Ingenieur en Informatique
    Inscrit en
    Décembre 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Algérie

    Informations professionnelles :
    Activité : Futur Ingenieur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2014
    Messages : 20
    Par défaut
    je vous remercie
    lol je l'ai essayé tout a l'heure aprés avoir envoyé le msg ,je suis bete .
    le problem maintenant j'arrive pas a copier ce que fgets() lis, j'ai essayer strcmp() et sprint() meme chose je y'arrive pas .

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

Discussions similaires

  1. [RegEx] Remplacement de chaine dans une sous chaine
    Par fpouget dans le forum Langage
    Réponses: 4
    Dernier message: 23/02/2010, 08h49
  2. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  3. Réponses: 28
    Dernier message: 02/03/2008, 00h28
  4. Réponses: 16
    Dernier message: 10/01/2008, 15h12
  5. recherche d'une chaine dans une sous chaine
    Par claralavraie dans le forum Oracle
    Réponses: 1
    Dernier message: 31/07/2006, 12h00

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