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

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

Susan Sarandon
Libérer: 2024-12-01 07:46:12
original
836 Les gens l'ont consulté

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

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();
Copier après la connexion

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();
Copier après la connexion

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);
    Copier après la connexion

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

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