Heim > Backend-Entwicklung > C++ > Wie konvertiere ich einen C-std::string in ein char* oder char[]?

Wie konvertiere ich einen C-std::string in ein char* oder char[]?

Patricia Arquette
Freigeben: 2024-12-03 04:20:10
Original
804 Leute haben es durchsucht

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

Konvertieren von std::string in char* oder char[]

Konvertieren eines std::string in char* oder char[] Datentypen in C erfordern explizite Angaben Methoden, da diese nicht automatisch konvertiert werden.

Methode 1: Verwenden von c_str()

Um eine C-String-Version des std::string zu erhalten , verwenden Sie die Methode c_str(). Diese Methode gibt ein const char zurück. Für ein nicht konstantes Zeichen verwenden Sie .data():

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

Methode 2: Kopieren in einen Vektor

Kopieren Sie die Zeichen std::string in a std::vector:

std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);
char *ptr = cstr.data(); // pointer to c-string
Nach dem Login kopieren

Methode 3: Manuelle Array-Zuweisung (nicht empfohlen)

Manuell ein Array zuweisen für die C-Zeichenfolge:

const char *cstr = new char[str.size() + 1];
std::strcpy(cstr, str.c_str());
// ... use the array ...
delete [] cstr;
Nach dem Login kopieren

Es ist wichtig, sich daran zu erinnern, dass die manuelle Speicherverwaltung dies kann zu Fehlern führen. Als bewährte Vorgehensweise verwenden Sie lieber .c_str() oder .data().

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen C-std::string in ein char* oder char[]?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage