Wie konvertiert man std::string in char* in C++? Probleme mit c_str() und data()
Hallo zusammen! Ich habe gerade angefangen, C++ zu lernen, und bin auf ein Problem gestoßen. Ich muss den Inhalt eines std::string an eine Funktion übergeben, die nur char* (nicht const char*) akzeptiert. Ich weiß, dass std::string die Methoden c_str() und data() hat, aber sie geben const char* zurück, und der Compiler meckert, dass ich const nicht an einen nicht-const Parameter übergeben kann. Ich habe es so versucht:
```cpp
std::string myStr = "Hello, world!";
char* ptr = myStr.c_str(); // Fehler: kann const char* nicht in char* konvertieren
someFunction(ptr);
```
Dann habe ich gelesen, dass man const_cast verwenden kann, aber das sieht gefährlich aus. Außerdem habe ich gesehen, dass jemand den String mit strcpy in ein char-Array kopiert. Was davon ist richtig? Oder gibt es eine Standardmethode, um genau char* (nicht const) aus std::string zu erhalten? Vielen Dank im Voraus für die Hilfe!
<<>>
Der richtige Weg: Kopieren in einen separaten Puffer
Das Problem ist, dass std::string seinen eigenen internen Speicher verwaltet und nicht garantiert, dass Sie ihn ändern können.
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen