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 d'une sous-chaine de caractère dans une chaine source


Sujet :

C

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut recherche d'une sous-chaine de caractère dans une chaine source
    bonjour!
    si quelqu'un pourra m'aider à résoudre ce problème !
    il s'agit d'écrire un prog.C qui cherche une chaine de carctère mot1 dans un autre mot2 et returne mot1 si trouvé..
    j'ai essayé et ca n'a pas marché

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    As-tu droit à la foction strstr ?
    Si oui, c'est fait, sinon, il faut écrire un petit automate de recherche, creuse cette voie.

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut j'ai pas le droit a utiliser strstr
    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
    43
    44
    45
    46
    47
    48
    49
    /*voici mon algorithme:*/
     
    #include<stdio.h>
    #include<string.h>
    #include<conio.h>
     
     
    void recherche (char ch1[],char ch2[])
    {
    int i=0;int j=0;
    if(strlen(ch1)<=strlen(ch2))
    {
    while(( (i<strlen(ch1)) && (j<=strlen(ch2)) || (i<=strlen(ch1)) ))
    {
    if(ch1==ch2[j])
    {
    i++;
    j++;
    }
    else
    {
    i=0;
    j++;
    }
     
    }
    printf("i= %d j= %d\n",i,j);
    if (i-1==strlen(ch1))
    printf("le mot est trouve");
    else printf("le mot n'est pas trouve");
    }
    else
    printf("chaine courte");
    }
     
     
    int main()
    {
    char mot;
    char motsource[20];
    printf("donner la chaine source:\n");
    gets(motsource);
    printf("donner le mot a rechercher:\n");
    gets(mot);
    recherche(mot,motsource);
     
    getch();
     
    }

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Utilise les balises code c'est beaucoup plus lisible.
    gets est un bug, il faut utiliser fgets(buf, sizeof buf, stdin).
    main doit retourner un int.

  5. #5
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    En regardant un peu plus ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    char mot;
    // plus loins
     
      gets(mot);
    Comportement indéfini, le pire, ça marche jusqu'au moment où ça ne marche plus, souvent le jour de la présentation devant le prof !
    Sinon ton code me semble correct, mais je n'ai pas approfondi, la section algo c'est à côté.
    Tout de même ce test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(( (i<strlen(ch1)) && (j<=strlen(ch2)) || (i<=strlen(ch1)) ))
    me paraît sujet à caution.

Discussions similaires

  1. [XL-2010] Recherche d'une sous-chaîne de caractères dans une cellule
    Par StephThai dans le forum Excel
    Réponses: 7
    Dernier message: 13/01/2014, 04h21
  2. Réponses: 5
    Dernier message: 14/12/2013, 18h10
  3. Réponses: 1
    Dernier message: 06/05/2007, 17h42
  4. [String]Recherche d'une chaine de caractères dans une autre
    Par Crazyblinkgirl dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2004, 11h51
  5. recherche d'une chaine de caractère dans une données text
    Par jdeheul dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 17/06/2004, 16h35

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