Partager via


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

Voir aussi

Référence

basic_string Class