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 une table vide, un pointeur non null qui ne peut pas être déréférencé.

Notes

Les objets de type appartenant à la classe de modèle C++ basic_string <char> ne sont pas nécessairement terminées par null. Le type de retour pour des données n'est pas une C-string valide, car aucun caractère NULL n'est ajouté. 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 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_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 : <chaîne>

Espace de noms : std

Voir aussi

Référence

basic_string, classe