basic_string::data
Converte il contenuto di una stringa in una matrice di caratteri.
const value_type *data( ) const;
Valore restituito
Un puntatore al primo elemento della matrice che contiene il contenuto della stringa, o, per una matrice vuota, un puntatore diverso da Null non può dereferenziare.
Note
Gli oggetti di tipo string che appartengono alla classe del modello C++ da basic_string <char> non sono necessariamente con terminazione null.Il tipo restituito per Scuro non è una C stringa valida, poiché nessun carattere null viene aggiunto.“\ 0 " Del carattere null viene utilizzato come carattere speciale in c dalla stringa per contrassegnare la fine della stringa, ma non ha un significato speciale in un oggetto di tipo stringa e può essere una parte dell'oggetto stringa come qualsiasi altro carattere.
Esiste una conversione automatica da const char* in stringhe, ma la classe stringa non offre le conversioni automatiche da stringhe di tipo C a oggetti di tipo basic_string <char>.
La stringa restituita non deve essere modificata, in quanto ciò potrebbe invalidare il puntatore alla stringa, o eliminati, perché la stringa ha una durata limitata ed è posseduta dalla stringa della classe.
Esempio
// 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;
}
Requisiti
intestazione: <string>
Spazio dei nomi: deviazione standard