Je sais que c'est peut-être une question stupide, mais je n'ai pas encore trouvé de réponse. Supposons que j'ai la chaîne suivante :
std::string str("1,2,3,4,5,6,7,8,9,10");
Je voudrais le diviser en utilisant la virgule comme délimiteur, mais seulement aux N premières occurrences. Par exemple, pour N = 2, je devrais obtenir comme résultat :
{ "1", "2", "3,4,5,6,7,8,9,10" }.
Est-il possible de le faire avec boost::split
? Je l'ai toujours utilisé sous la forme suivante :
std::vector<std::string> values;
boost::split(values, str, boost::is_any_of(","), boost::token_compress_on);
qui divise la chaîne de caractères sur chaque occurrence du délimiteur.
Si ce n'est pas possible, quelqu'un peut-il me suggérer un moyen efficace de le faire ? Je voudrais éviter d'avoir à utiliser des regex, c'est-à-dire que je voudrais écrire une fonction du type :
std::vector<std::string> tokenize(const std::string& to_split, const std::string& delimiter, int occurrences)
Merci d'avance pour votre aide.