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
    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
    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.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 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
    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.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  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
    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.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

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