Bonjour, Je vous propore un nouvel élément à utiliser : [Chaine de caractères] Découper une chaîne
Voici une fonction permettant de découper une chaîne selon un motif:
Qu'en pensez-vous ?
Bonjour, Je vous propore un nouvel élément à utiliser : [Chaine de caractères] Découper une chaîne
Voici une fonction permettant de découper une chaîne selon un motif:
Qu'en pensez-vous ?
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Je me permets de donner un moyen d'appeler la fonction car ce n'est pas super clair
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 std::vector<std::string> res; split("foo bar nun chuck", std::back_inserter(res), " ");
"Never use brute force in fighting an exponential." (Andrei Alexandrescu)
Mes articles dont Conseils divers sur le C++
Une très bonne doc sur le C++ (en) Why linux is better (fr)
Il pourrait être interressant de généraliser cette fonction pour toutes les basic_strings, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 template < class CharType, class OO, class Sep, class CTraits = std::char_traits<CharType>, class CAlloc = std::allocator<CharType> > OO split(std::basic_string<CharType, CTraits, CAlloc> const& source, OO dest, Sep separator) { /* .... */ }
En fait, il manque les codes d'exemple qui avaient accompagné la définition dans le post d'origine: http://www.developpez.net/forums/d23...e/#post2842014
Sinon, oui, généraliser est une bonne idée.
Autre note, si on veut supporter plusieurs séparateurs (pour comprendre des formats comme: "x = 42"), il faut remplacer "p = p2 + 1" par:
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part p = source.find_first_not_of(sep, p2 + 1);
PS: je l'ai pondu sans regarder ailleurs en même temps, au moment de répondre au post sur le forum, sauf émergence involontaire et spontanée du même code ailleurs et en même temps, considérez que c'est sous licence boost BSL.
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...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager