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
Patricia Arquetteoriginal
2024-12-03 04:20:10804parcourir

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*

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

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;
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:
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
Article précédent:Application simplifiéeArticle suivant:Application simplifiée