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 :

J'ai du mal avec strtok


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut J'ai du mal avec strtok
    Bonjour,
    j'essaye avec peine un truc qui doit etre bien simple.

    J'ai cette chaine caractere:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    +CCLK: 14/12/09,22:23:45+0
    et j'aimerais supprimer
    +CCLK:
    Donc on m'a suggérer d'utiliser strtok() je ne connais pas
    J'ai essayé ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Serial.println(response[1]);
      char * pch;
      pch = strtok (response[1]," ");
     
      Serial.println(pch[1]);
    je pensais que dans pch[0], j'ai "+CCLK" et que dans pch[1], j'ai ce qui suit après l'espace. Mais pch[1] m'affiche 'c'

    Comment puis-je spliter la chaine comme délimiteur, l'espace?

    Merci!!

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Salut,

    as-tu lu la doc ?
    Return Value
    If a token is found, a pointer to the beginning of the token.
    Otherwise, a null pointer.
    A null pointer is always returned when the end of the string (i.e., a null character) is reached in the string being scanned.
    Y'a même un exemple bien parlant fourni.

    pch c'estun char*, donc pch[1] est un char..

    Bon par contre... c'est du C.

    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut
    Ha, excuse moi,
    oui j'ai lu ceci, mais je n'ai pas compris...
    http://www.cplusplus.com/reference/cstring/strtok/

    J'ai aussi essayé de faire
    mais c am'a affiché
    +CCLK:
    alors que je souhiate
    14/12/09,22:23:45+0
    Bon par contre... c'est du C
    Désolé, je ne distingue pas encore les deux.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut
    Mais alors en continuant sur ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while (pch != NULL)
      {
        printf ("%s\n",pch);
        pch = strtok (NULL, " ,.-");
      }
    Comment je fais pour afficher la deuxieme partie.

    Par exemple si j'ai ceci (ou j'ai rajouter un espace avant l'heure)
    +CCLK: 14/12/09 22:23:45+0
    1) dans le cas ou je veux la date "14/12/09"
    2) dans le cas ou je veux l'heure "2:23:45+0"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ma_funtion(1)
    {
    char str[] ="CCLK: 14/12/09 22:23:45+0";
      char * pch;
      pch = strtok (str," ");
      while (pch != NULL)
      {
        printf ("%s\n",pch);
        pch = strtok (NULL, " ,.-");
      }
    }
    Comment modifier while,
    pour que lorsque je passe 1 dans ma_function(1); il m'affiche
    CCLK
    pour que lorsque je passe 2 dans ma_function(2); il m'affiche
    14/12/09
    pour que lorsque je passe 3 dans ma_function(3); il m'affiche
    22:23:45+0
    ?
    Merci!

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Tu fais du C ou du C++ ? Parce que ce sont deux langages différents, et en C++, il y a plusieurs alternatives à strtok, qui est une fonction avec pleins de défauts...
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 166
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 166
    Par défaut
    Ben je ne sais pas
    Ce code est utiliser sur un microcontroller Arduino qui "accepte" les deux..
    Je ne sais pas quoi répondre, à dire vrai. On va dire du C++.
    Ce qui m'importe c'est d'arriver à ce que je souhaite , soit de sélectionner la partie que j'ai besoin

Discussions similaires

  1. LIMIT calcul mal avec des JOIN
    Par FMaz dans le forum Requêtes
    Réponses: 21
    Dernier message: 12/07/2006, 03h37
  2. du mal avec les fichiers ressources
    Par keil dans le forum MFC
    Réponses: 1
    Dernier message: 01/02/2006, 02h46
  3. Probleme avec strtok
    Par Premium dans le forum C
    Réponses: 3
    Dernier message: 23/11/2005, 13h28
  4. [POO] Un peu de mal avec les membres de ma classe
    Par Spack dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/11/2005, 03h41
  5. problème avec strtok pour récupérer les vides
    Par manikou dans le forum MFC
    Réponses: 4
    Dernier message: 02/06/2005, 20h08

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