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 :

C++ Découpage d'une variable String à partir de séparateurs


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut C++ Découpage d'une variable String à partir de séparateurs
    Bonjour à tous,

    Je suis actuellement sur un programme qui vise à récupérer le contenu d'une table de base de données.
    Je récupère très bien les valeurs et les sépares avec un séparateur "/":
    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
     
    String BDD::Requete_Statut_Commande()
    {
    mysql_query(mySQL, "SELECT * FROM `unite_de_soin` WHERE 1");
     
      MYSQL_RES *myRES = mysql_store_result(mySQL);
       iTotalColonnes = mysql_num_rows(myRES);
    	iTotalLignes = mysql_num_fields(myRES);
    	 iIndice=0;
     
    	 while((myROW = mysql_fetch_row(myRES)))
       {
    		for(iIndice = 0; iIndice < iTotalLignes; iIndice++)
    	  {
    		 cValeur = myROW[iIndice];
    		   sValeur+=cValeur;
    			sValeur+="/";
    	  }
       }
    return sValeur;
    }
    Le problème est que lorsque je récupère la variable, je ne sais pas comment la découpé à partir des séparateurs ...
    Voici le contenu de la variable:
    Nom : Sans titre.png
Affichages : 353
Taille : 4,5 Ko

    Merci d'avance pour vos réponses !

  2. #2
    Membre éprouvé Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Points : 1 054
    Points
    1 054
    Par défaut
    Bonjour,

    Tu peux utiliser istringstream et getline (en fournissant '/' comme séparateur)
    Tu peux aussi utiliser la fonction membre find du string (attention à la majuscule dans ta déclaration de fonction).

    Je me pose cependant une question. Pourquoi renvoyer une string. Pourquoi pas un vector ?

    Cordialement
    Fenkys

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Tu as l'embarra du choix:
    - boost
    - Qt
    - C++17? http://www.open-std.org/JTC1/SC22/WG...013/n3593.html (ou alors cela a été pris dans le C++14 ? Je n'ai pas suivi j'avoue)
    - bibi: http://www.developpez.net/forums/d23...e/#post2842014 et http://www.developpez.net/forums/d99...e/#post5916506
    - avec des facets: http://www.developpez.net/forums/d12...s/#post6913548
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #4
    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 : 49
    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
    Points : 16 213
    Points
    16 213
    Par défaut
    std::regex permet aussi assez simplement de splitter.
    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.

  5. #5
    Membre chevronné

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2013
    Messages : 610
    Points : 1 878
    Points
    1 878
    Billets dans le blog
    21
    Par défaut
    Ou bien tout bêtement...

    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    std::vector<std::string> split(const std::string& s, char delim) {
      std::string::const_iterator p = s.begin(), it = s.begin();
      std::vector<std::string> vs;
      while (true) {
        if (*it == delim || it == s.end()) {
          vs.push_back(std::string(p, it));
          if (it == s.end()) return vs;
          else { p = ++it; continue; }
        }
        else ++it;
      }
      return vs;
    }

  6. #6
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060

Discussions similaires

  1. construire une liste a partir d'une variable string
    Par Palsajicoco dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 12/07/2011, 10h05
  2. Instancier une class a partire d'une variable string
    Par Assimil dans le forum ASP.NET
    Réponses: 7
    Dernier message: 25/06/2008, 16h47
  3. Créer une variable a partir d'un string
    Par chaky furtz dans le forum Langage
    Réponses: 14
    Dernier message: 07/02/2008, 17h22
  4. nommer un objet à partir d'une variable String
    Par kobrapercussions dans le forum Langage
    Réponses: 12
    Dernier message: 13/03/2007, 13h19
  5. Réponses: 4
    Dernier message: 31/08/2006, 15h31

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