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
Patricia ArquetteOriginal
2024-12-03 04:20:10806Durchsuche

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*

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!

Stellungnahme:
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
Vorheriger Artikel:Streamlit-AppNächster Artikel:Streamlit-App