Video: C Tutorial | How to Print a String 2024
La forma più comune di un array C ++ è la stringa di caratteri con terminazione null utilizzata per visualizzare il testo, che mostra chiaramente sia la vantaggi e svantaggi dell'array. Considerare quanto appare facile quanto segue:
cout << "questa è una stringa";
Ma le cose peggiorano rapidamente quando si tenta di eseguire un'operazione anche semplicemente concatenando due di queste stringhe con terminazione nulla:
char * concatCharString (const char * s1, const char * s2) {int length = strlen (s1) + strlen (s2) + 1; char * s = new char [lunghezza]; strcpy (s, s1); strcat (s, s2); return s;}
L'STL fornisce un contenitore stringa per gestire le stringhe di visualizzazione. La classe stringa fornisce un numero di operazioni (inclusi operatori sovraccaricati) per semplificare la manipolazione delle stringhe di caratteri. La stessa operazione concat () può essere eseguita come segue usando string oggetti:
string concat (const string & s1, const string & s2) {return s1 + s2;}
Nel suo nucleo, una stringa è ancora una matrice. Le operazioni fornite dall'STL facilitano la manipolazione degli oggetti stringa ma non molto più velocemente. L'inserimento nel mezzo di una stringa comporta comunque lo spostamento dei contenuti degli array.
La classe stringa è in realtà un'istanza del modello di classe basic_class con T impostato su char . La classe wstring è un altro nome per basic_class . Questa classe fornisce le stesse manipolazioni di caratteri mostrate qui per stringhe larghe.
La definizione di C ++ '11 aggiunge u16string e u32string , che estende i metodi di manipolazione delle stringhe alle stringhe di caratteri UTF-16 e UTF-32. Tutti i confronti tra due oggetti stringa vengono eseguiti lessicograficamente - cioè, quale delle due stringhe apparirebbe prima nel dizionario della lingua corrente.