basic_string::c_str
Konvertiert den Inhalt einer Zeichenfolge als er-ähnlich a-c, auf NULL endende Zeichenfolge.
const value_type *c_str( ) const;
Rückgabewert
Ein Zeiger auf die Version im C-Format der aufrufenden Zeichenfolge.Der Zeigerwert ungültig, nachdem er eine nicht konstante Funktion, einschließlich den Destruktor, in der basic_string-Klasse auf dem Objekt aufgerufen hat.
Hinweise
Die Objekte der Typzeichenfolge gehörend der C++-Vorlagenklasse, die<char> basic_string ist, sind nicht unbedingt beendet NULL.NULL-Zeichen-" \ 0 " wird als Sonderzeichen in eine - Zeichenfolge verwendet, um das Ende der Zeichenfolge zu markieren hat jedoch keine besondere Bedeutung in einem Objekt der Typzeichenfolge und ist ein Teil der Zeichenfolge wie jedes andere Zeichen.Es gibt eine automatische Konvertierung vom const char* in Zeichenfolgen, aber die Zeichenfolgenklasse stellt nicht für automatische Konvertierungen von Zeichenfolgen in C-Format auf Objekte vom Typ basic_string<char> bereit.
Die zurückgegebene Zeichenfolge im C-Format darf nicht geändert werden, da sie die Zeiger auf die Zeichenfolge NULL werden konnte, oder gelöscht werden, da die Zeichenfolge eine begrenzte Lebensdauer verfügt und durch die Klassenzeichenfolge übergeordnet ist.
Beispiel
// basic_string_c_str.cpp
// compile with: /EHsc
#include <string>
#include <iostream>
int main( )
{
using namespace std;
string str1 ( "Hello world" );
cout << "The original string object str1 is: "
<< str1 << endl;
cout << "The length of the string object str1 = "
<< str1.length ( ) << endl << endl;
// Converting a string to an array of characters
const char *ptr1 = 0;
ptr1= str1.data ( );
cout << "The modified string object ptr1 is: " << ptr1
<< endl;
cout << "The length of character array str1 = "
<< strlen ( ptr1) << endl << endl;
// Converting a string to a C-style string
const char *c_str1 = str1.c_str ( );
cout << "The C-style string c_str1 is: " << c_str1
<< endl;
cout << "The length of C-style string str1 = "
<< strlen ( c_str1) << endl << endl;
}
Anforderungen
Header: <string>
Namespace: std