basic_string::c_str
Convertit le contenu d'une chaîne comme c de style, chaîne terminée par le caractère NULL.
const value_type *c_str( ) const;
Valeur de retour
Un pointeur vers la version de style C de la chaîne d'appel.La valeur de pointeur est pas valide après avoir appelé une fonction non constante, y compris le destructeur, dans la classe basic_string sur l'objet.
Notes
Les objets de type chaîne appartenant à la classe de modèle C++ basic_string<char> ne sont pas nécessairement null terminés.Le caractère NULL « \0 'is used as a special character in a C - la chaîne pour marquer l " fin de la chaîne mais n'a aucune signification particulière dans un objet de type chaîne et peut être une partie de la chaîne comme n'importe quel autre caractère.Il existe une conversion automatique de char* const en chaînes, mais la classe de chaîne ne fournit pas les conversions automatiques des chaînes de style C à des objets du type basic_string<char>.
La chaîne de style C retournée ne doit pas être modifiée, comme cela peut invalider le pointeur à la chaîne, ou être désactivée, comme la chaîne a une durée de vie limitée et est possédée par la chaîne de classe.
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 : <string>
l'espace de noms : DST