„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie konvertiere ich eine c ++ std :: string in einen char* oder char []?

Wie konvertiere ich eine c ++ std :: string in einen char* oder char []?

Gepostet am 2025-03-23
Durchsuche:744

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

konvertieren std :: string in char* oder char []

ein std :: string zu char * oder

std::string str = "string";
const char *cstr = str.c_str(); // const char*
char *cstr = str.data(); // non-const char*

[] []

[]

[] [] [] [] [] [] [] [] werden sie jedoch [] [] [] [] [] [] [] [] [] [] [] [] automatisch [] automatisch [] [] [usch; Convert. Methode 1: Verwenden c_str ()

std::vector cstr(str.c_str(), str.c_str()   str.size()   1);
char *ptr = cstr.data(); // pointer to c-string
std :: string

zu erhalten, die c_str () Methode. Diese Methode gibt eine

const char

zurück. Für ein nicht konstantes char
const char *cstr = new char[str.size()   1];
std::strcpy(cstr, str.c_str());
// ... use the array ...
delete [] cstr;
. Data ()

: std :: string str = "String"; const char *cstr = str.c_str (); // const char* char *cstr = str.data (); // non-const char*

Method 2: Copying into a Vector

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

Copy the

std::string characters into a std::vector

:

std::vector cstr(str.c_str(), str.c_str () str.size () 1); char *ptr = cstr.data (); // Zeiger auf c-String Methode 3: Handbuch Array Allocation (nicht empfohlen)

ordnen manuell ein Array für die c-String zu:

const char *cstr = new char [str.size () 1]; std :: strcpy (cstr, str.c_str ()); // ... benutze das Array ... delete [] cstr;

Es ist wichtig, sich daran zu erinnern, dass das manuelle Speichermanagement zu Fehlern führen kann. Als beste Praxis bevorzugen Sie

. C_str () oder . Data () .

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3