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 ?
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), " ");
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.
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