Heim >Backend-Entwicklung >C++ >Wie konvertiere ich einen std::string in ein char* oder char[] in C?
Std::string in char* oder char[] konvertieren
Std::string in char* oder char[] konvertieren Der Datentyp kann eine häufige Aufgabe in C sein, es ist jedoch zu beachten, dass die automatische Konvertierung nicht unterstützt wird. Um dies zu erreichen, kann die Methode c_str() verwendet werden, um eine Zeichenfolgendarstellung im C-Stil des std::string zu erhalten.
std::string str = "string"; const char *cstr = str.c_str();
Die Methode c_str() gibt einen const char-Zeiger zurück. Wenn also a Ein nicht konstanter Zeiger ist erforderlich, stattdessen kann die Methode data() verwendet werden:
char *cstr = str.data();
Alternative Optionen:
Zusätzlich zur Verwendung von c_str() und data() gibt es noch andere Methoden zum Konvertieren von std::string in char*:
Zeichen in einen Vektor kopieren:
std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);
Beachten Sie, dass diese Version das abschließende Nullzeichen kopiert (' ').
Manuelle Speicherverwaltung (mit Vorsicht verwenden):
char *cstr = new char[str.size() + 1]; std::strcpy(cstr, str.c_str()); // do stuff delete [] cstr;
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen std::string in ein char* oder char[] in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!