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

source:php.cn
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