Maison > développement back-end > C++ > Comment convertir un std::string C en char* ou char[] ?

Comment convertir un std::string C en char* ou char[] ?

Patricia Arquette
Libérer: 2024-12-03 04:20:10
original
913 Les gens l'ont consulté

How Do I Convert a C   std::string to a char* or char[]?

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 du

std::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*
Copier après la connexion

Méthode 2 : Copier dans un vecteur

Copiez les caractères

std::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
Copier après la connexion

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;
Copier après la connexion
Il est crucial de rappeler que la gestion manuelle de la mémoire peut conduire à des erreurs. Comme bonne pratique, préférez utiliser

.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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal