Share via


basic_string::data

Convierte el contenido de una cadena en una matriz de caracteres.

const value_type *data( ) const;

Valor devuelto

Un puntero al primer elemento de la matriz que contiene el contenido de la cadena, o, para una matriz vacía, un puntero no nulo que no puede desreferenciar.

Comentarios

Los objetos de tipo string que pertenecen a char basic_string <de la clase de plantilla de> C++ no son necesariamente nulos finalizados. El tipo de valor devuelto para datos no es una C cadena válida, porque ningún carácter null obtiene anexado. El carácter null “\0” se utiliza como carácter especial en el c. la cadena para marcar el final de la cadena, pero no tiene ningún significado especial en un objeto de tipo string y puede formar parte del objeto string como cualquier otro carácter.

Hay una conversión automática const char* en cadenas, pero la clase de cadena no proporciona las conversiones automáticas de cadenas de estilo C a los objetos de **basic_string <char>**escrito.

La cadena devuelta no debe modificar, porque esto podría reemplazar el puntero a la cadena, o eliminar, porque la cadena tiene una duración limitada y pertenece a la cadena de clase.

Ejemplo

// 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;
}
  

Requisitos

Encabezado: <string>

Espacio de nombres: std

Vea también

Referencia

basic_string (Clase)