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.

  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 : 38
    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?

  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...

  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()...

  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".

  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...

  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).

  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

+ 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