Convertir std::string en char* ou char[]
Convertir un std::string en char* ou char[] Le type de données peut être une tâche courante en C , mais il convient de noter que la conversion automatique n'est pas prise en charge. Pour y parvenir, la méthode c_str() peut être utilisée pour obtenir une représentation sous forme de chaîne de style C de std::string.
std::string str = "string"; const char *cstr = str.c_str();
La méthode c_str() renvoie un pointeur de caractère const, donc si un un pointeur non const est requis, la méthode data() peut être utilisée à la place :
char *cstr = str.data();
Alternative Options :
En plus d'utiliser c_str() et data(), il existe d'autres méthodes pour convertir std::string en char* :
Copie de caractères dans un vecteur :
std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);
Notez que cette version copie le caractère nul de fin (' ').
Gestion manuelle de la mémoire (à utiliser avec prudence) :
char *cstr = new char[str.size() + 1]; std::strcpy(cstr, str.c_str()); // do stuff delete [] cstr;
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!