Heim >Backend-Entwicklung >C++ >Wie konvertiere ich einen C-std::string in ein char* oder 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*
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
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;
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!