Konvertieren von std::string in char* oder char[]
In C muss möglicherweise ein std::konvertiert werden: string, der eine Folge von Zeichen enthält, in ein nullterminiertes Zeichenarray, das durch char* oder char[] dargestellt wird. Eine direkte Konvertierung mit dem Zuweisungsoperator führt jedoch zu einem Fehler.
Um diese Konvertierung zu erreichen, stehen mehrere Methoden zur Verfügung:
1. c_str()-Methode:
Die c_str()-Methode von std::string gibt einen Zeiger auf die zugrunde liegende Zeichenfolge im C-Stil zurück, die nullterminiert ist. Dieser Zeiger kann direkt einer char*-Variablen zugewiesen werden.
std::string str = "string"; const char *cstr = str.c_str();
2. data()-Methode:
Die data()-Methode von std::string gibt ebenfalls einen Zeiger auf die zugrunde liegende Zeichenfolge im C-Stil zurück, ist jedoch nicht konstant. Dieser Zeiger kann einer char*-Variablen ohne das const-Qualifikationsmerkmal zugewiesen werden.
std::string str = "string"; char *cstr = str.data();
Andere Optionen:
Man kann einen std::vector aus Zeichen und erstellen Kopieren Sie die Zeichen aus dem std::string hinein. Die data()-Methode des Vektors kann dann verwendet werden, um einen char*-Zeiger zu erhalten.
Man kann manuell Ordnen Sie mit dem neuen Operator ein Array von Zeichen zu, kopieren Sie die Zeichen aus std::string in das Array und verwenden Sie das Array als char*-Zeiger. Dieser Ansatz sollte aufgrund von Problemen bei der manuellen Speicherverwaltung mit Vorsicht verwendet werden.
Zusammenfassend bieten die Methoden c_str() und data() von std::string praktische Möglichkeiten, einen std::string in ein char* umzuwandeln. oder char[]-Datentyp. Andere Optionen, wie das Kopieren in einen std::vector oder die manuelle Speicherzuweisung, können in bestimmten Situationen verwendet werden.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen „std::string' in einen „char*' oder „char[]' in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!