basic_string::c_str
Convertit le contenu d'une chaîne en une chaîne de style C se terminant par null.
const value_type *c_str( ) const;
Valeur de retour
Pointeur vers la version de style C de la chaîne appelante. La valeur du pointeur n'est pas valide après avoir appelé la fonction non constante, y compris le destructeur, dans la classe basic_string sur l'objet.
Notes
Les objets de type appartenant à la classe de modèle C++ basic_string<char> ne sont pas nécessairement terminés par null. Le caractère null ' \0 ' est utilisé comme caractère spécial dans les C-strings pour marquer la fin de la chaîne mais n'a pas de signification spéciale dans un objet de type chaîne et peut faire partie de la chaîne comme tout autre caractère. Il existe une conversion automatique de const char* en chaînes, mais la classe de chaîne ne prévoit pas de conversion automatique des chaînes de style C aux objets de type basic_string<char>.
La chaîne de style C retournée ne doit pas être modifiée, car cela peut invalider le pointeur vers la chaîne, ou être supprimée, car la chaîne a une durée de vie limitée et appartient la classe de chaîne.
Exemple
// 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;
}
Configuration requise
En-tête : <chaîne>
Espace de noms : std