Bonjour,

Durant mon projet, j'aurais besoin de séparer une multistring (tableau de char, instauré par Microsoft, représentant plusieurs chaînes de caractères séparées par un caractère NULL, selon : "String1\0String2\0String3\00" [deux caractères NULL finaux]) en plusieurs strings. J'ai donc pensé à boost::tokenizer, mais en faisant le test suivant :
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
//#define MAX_PATH 260
 
char temp[MAX_PATH] = "YOUHOU;\0SALUT\0TOP";
 
boost::tokenizer<boost::char_separator<char> > tok(std::string(temp), boost::char_separator<char>("\0"));
for (boost::tokenizer<boost::char_separator<char> >::const_iterator i = tok.begin(); i != tok.end(); ++i )
    MessageBox(hwnd, i->c_str(), "Test", MB_ICONINFORMATION);
Je n'ai que la première string, ce qui paraît logique du fait que le caractère NULL finit en principe les strings.

Seulement voilà, je dois faire cette séparation, et j'aimerais vraiment utiliser Boost.Tokenizer pour cela (j'aurais aussi l'alternative STL avec des istream_iterator<>, mais je risque d'avoir le même problème) ; par conséquent, sauriez-vous comment remédier à ce problème (une astuce quelconque) ?

Merci d'avance.