Partager via


basic_string::data

Convertit le contenu d'une chaîne en un tableau de caractères.

const value_type *data( ) const;

Valeur de retour

Pointeur vers le premier élément du tableau contenant le contenu de la chaîne, ou, pour un tableau vide, un pointeur non null qui ne peut pas être déréférencé.

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 type de retour pour data n'est pas une c chaîne valide, car aucun caractère Null n'est ajouté.Le caractère NULL « \0 'is used as a special character in a C - chaîne pour marquer l " fin de la chaîne, mais n'avez aucune signification particulière dans un objet de type chaîne et peut être une partie de l'objet 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 retournée ne doit pas être modifiée, car cela peut invalider le pointeur à la chaîne, ou être désactivée, car 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_data.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