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 :

Fonction strtok


Sujet :

C

  1. #1
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut Fonction strtok
    Bonjour, j'aimerais extraire une sous-chaine de caractère d'une chaine initiale.
    chaine initial : salut toi he
    sous-chaine extraite : toi
    seulement je n'y arrive pas voici mon programme :
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int main (void)
    {
        char msg[51]="salut toi he";
        char *pt;
     
        strcpy (msg,"salut toi he");
     
        pt=strtok(msg," ");
        printf ("%s ",pt);
     
     
     
        printf ("\n");
        system ("pause");
        return (0);
    }
    Je n'arrive pas extraire le mot "toi" je ne vois pas comment delimiter l'espace avant et après "toi", c'est pourquoi je solicite votre aide.
    Les élèves glandeurs c'est comme le linge, quand il fait beau ca sèche.

  2. #2
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char msg[51]="salut toi he";
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcpy (msg,"salut toi he");
    ca revient pas au même?
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par seriousme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char msg[51]="salut toi he";
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcpy (msg,"salut toi he");
    ca revient pas au même?
    Oui, c'est redondant...
    Pas de Wi-Fi à la maison : CPL

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut Re: Fonction strtok
    Citation Envoyé par benjiprog
    Bonjour, j'aimerais extraire une sous-chaine de caractère d'une chaine initiale.
    chaine initial : salut toi he
    sous-chaine extraite : toi
    seulement je n'y arrive pas voici mon programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        char msg[51]="salut toi he";
        char *pt;
     
        pt=strtok(msg," ");
        printf ("%s ",pt);
    Il faut continuer à appeler strtok(), mais avec NULL au lieu de msg. C'est ce qui est écrit dans la doc de strtok()...
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    Oui, j'ai essayer ca mais ca me donne le même resultat, j'ai lu la doc sur les chaines de caractères le problème c'est qu'il y a pas énormement de chose sur cette fonction. Peut-être que j'ai lu une autre doc.
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int main (void)
    {
        char msg[51]="salut toi he";
        char *pt;
     
        pt=strtok(msg," ");
        printf ("%s ",pt);
        pt=strtok(NULL," ");
     
     
        printf ("\n");
        system ("pause");
        return (0);
    }
    Ca me donne la sous-chaine "salut" mais pas "toi".
    Les élèves glandeurs c'est comme le linge, quand il fait beau ca sèche.

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par benjiprog
    Oui, j'ai essayer ca mais ca me donne le même resultat, <...>
    Ca me donne la sous-chaine "salut" mais pas "toi".
    Ben oui, mais il faut mettre le printf() au bon endroit...
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Membre habitué Avatar de benjiprog
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 302
    Points : 134
    Points
    134
    Par défaut
    Je te remerci, j'ai trouver la solution je la donne bien evidemment :
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    int main (void)
    {
        char msg[51]="salut toi he";
        char *pt;
     
        pt=strtok(msg," ");
        pt=strtok(NULL," ");
        printf ("%s ",pt);
     
        printf ("\n");
        system ("pause");
        return (0);
    }
    Sinon n'y aurait-il pas une petite doc un peu plus complète sur cette fonction que celle sur les chaines de caractères (qui est très bien d'ailleur).
    Les élèves glandeurs c'est comme le linge, quand il fait beau ca sèche.

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par benjiprog
    Sinon n'y aurait-il pas une petite doc un peu plus complète sur cette fonction que celle sur les chaines de caractères (qui est très bien d'ailleur).
    http://www-ccs.ucsd.edu/c/

    sinon, dans : man strtok
    Pas de Wi-Fi à la maison : CPL

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

Discussions similaires

  1. utilisation fonction strtok
    Par john123 dans le forum Langage
    Réponses: 1
    Dernier message: 09/12/2007, 11h58
  2. fonction strtok manquante
    Par Bayard dans le forum C
    Réponses: 3
    Dernier message: 10/06/2007, 12h34
  3. [NASM] Programmation fonction strtok
    Par moustiks dans le forum Assembleur
    Réponses: 4
    Dernier message: 15/01/2007, 09h30
  4. Fonction strtok et récupération des fragments
    Par GarGamel55 dans le forum Langage
    Réponses: 7
    Dernier message: 18/02/2006, 19h27
  5. du mal à comprendre la fonction strtok
    Par thierry_b dans le forum C
    Réponses: 2
    Dernier message: 25/11/2005, 10h37

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