Compartir a través de


basic_string::c_str

Convierte el contenido de una cadena como c. estilo, cadena terminada en null.

const value_type *c_str( ) const;

Valor devuelto

Un puntero a la versión de estilo C de la cadena que invoca. El valor de puntero no es válido después de llamar a una función no - const, incluidos el destructor, en la clase basic_string en el objeto.

Comentarios

Los objetos de tipo string que pertenecen a la clase de plantilla de C++ basic_stringchar<> no son necesariamente nulos finalizados. 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 ser una parte de la cadena 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 de estilo C no debe modificar, como ésta podría reemplazar el puntero a la cadena, o eliminar, como la cadena tiene una duración limitada y pertenece a la cadena de clase.

Ejemplo

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

Requisitos

Encabezado: <string>

Espacio de nombres: std

Vea también

Referencia

basic_string (Clase)