Ein C string ist ein char array. Ein C++ string aus der Standardbibliothek ist eine Klasse, die dir das Handling mit dem char array abnimmt. Die Methode c_str der Klasse string gibt dir ihr internes char array zurück.
|
C-/C++-Quelltext
|
1
2
|
std::string einString = "Hallo Welt!";
const char* cStyle = einString.c_str();
|
Da C diese string Klasse nicht kennt, du aber C Biblotheken nutzen möchtest, brauchst du die Methode c_str um den C++ string einer C Funktion übergeben zu können.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
ichBinEineCFunktion(einString.c_str());
// Beispiel für C++ Funktion
void tuWasDamit(const std::string& str){
// hier nutzen wir die Referenz die wir auf den string haben, es wurde kein char array übergeben, daher können wir z.B. sowas machen:
str += '\n'; // hängt einen Zeilenumbruch an
}
|
Das Anhängen eines \n wäre unter C etwas komplizierter, da man dafür eine Funktion aufrufen müsste (die C in der Std aber bereitstellt). Der += Operator fühlt sich aber einfach natürlicher an und macht daher mehr Spaß