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

Wie konvertiere ich einen „std::string' in einen „char*' oder „char[]' in C?

Patricia Arquette
Freigeben: 2024-11-30 15:39:09
Original
136 Leute haben es durchsucht

How to Convert a `std::string` to a `char*` or `char[]` in C  ?

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();
Nach dem Login kopieren

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();
Nach dem Login kopieren

Andere Optionen:

  • Kopieren in einen Standard: :vector:

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.

  • Manuelle Speicherzuweisung:

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!

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