Comme le titre l'indique, j'essaie de convertir std::string en unsigned char*. Tous les rubriques que j'ai trouvées ne sont pas clairs. Des solutions simples?
Version imprimable
Comme le titre l'indique, j'essaie de convertir std::string en unsigned char*. Tous les rubriques que j'ai trouvées ne sont pas clairs. Des solutions simples?
Il y a la méthode c_str() pour obtenir un char const *, data() aussi.
Au delà il faut passer par un cast, avec toutes les précautions d'usage.
Te faut-il vraiment un unsigned char *, ou un unsigned char const * peut-il convenir?
Quelque chose comme ça ?
Ou plutôt comme ça ?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 namespace { struct converter { unsigned char operator()(char value) { return (unsigned char)value; } }; unsigned char* create_unsigned_char_from_string(const std::string& s) { unsigned char* p = new unsigned char[s.length()]; std::transform(s.begin(), s.end(), p.begin(), converter()); return p; } }
Code:
1
2
3 std::string the_string("some value"); unsigned char* p = (unsigned char*)(&the_string[0]);