Conversion de std::string en char* ou char[]
Conversion d'un std::string en char* ou char[] en C nécessitent des méthodes explicites, car ils ne sont pas convertis automatiquement.
Méthode 1 : Utiliser c_str()
Pour obtenir une version C-string dustd::string, utilisez la méthode c_str(). Cette méthode renvoie un const char. Pour un caractère non const, utilisez .data():
std::string str = "string"; const char *cstr = str.c_str(); // const char* char *cstr = str.data(); // non-const char*
Méthode 2 : Copier dans un vecteur
Copiez les caractèresstd::string dans un std::vector
std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1); char *ptr = cstr.data(); // pointer to c-string
Méthode 3 : allocation manuelle de tableau (non recommandée)
Allouer manuellement un tableau pour la C-string :const char *cstr = new char[str.size() + 1]; std::strcpy(cstr, str.c_str()); // ... use the array ... delete [] cstr;
.c_str() ou .data().
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!