PROGRAMMIAMO
C++ - Il contenitore string
Classi predefinite standard: la classe string

Così come le funzioni di library standard del C++ mettonoa disposizione del programmatore codice già scritto per risolvere alcuni problemi comuni, allo stesso modo la library standard contiene alcune classi (dette in questo contesto più propriamente contenitori) predefinite. Un esempio semplice e particolarmente interessante è la classe string per la gestione delle stringhe.

Abbiamo visto in precedenza come in C le stringhe possano essere trattate come vettori di char. Tuttavia il C++ semplifica grandemente l'uso delle stringhe per mezzo di una classe predefinita di library, la classe string appunto. Si osservi il seguente programma:

#include <iostream>

using namespace std;

#include <string>

int main()
{
string parola;

cout<<"Fornisci una parola: ";
cin>>parola;
cout<<"La parola inserita è "<<parola<<"\n";

return 0;
}

Si osservi anzitutto la dichiarazione

#include <string>

posta all'inizio del programma e necessaria per poter utilizzare la classe string. A questo punto si dichiara un oggetto appartenente alla classe con la sintassi

string nome_oggetto;

Si noti che non è necessario dichiarare una dimensione massima per l'oggetto string. Le stringhe in C++ vengono gestite dinamicamente, riservando in modo automatico la memoria necessaria.

Acquisizione di una stringa contenente spazi (blank)

L'istruzione cin, usata nell'esempio precedente per acquisire una stringa, presenta il problema che non acquisisce stringhe contenenti al proprio interno degli spazi. Per esempio volendo acquisire la stringa

"nel mezzo del cammin di nostra vita"

con

cin>>verso;

alla fine verso conterrebbe solo "nel" poiché l'acquisizione termina automaticamente in corrispondenza del primo spazio.

Il problema può essere risolto in C++ usando la funzione getline nel seguente modo:

getline(cin, verso);

La sintassi è abbastanza semplice:

getline(cin, nome_string_da_acquisire)

E' importante non confondere la funzione getline con la cin.getline usata per acquisire stringhe rappresentate come vettori di char (cioè nel modo "tradizionale" del linguaggio C).

Costruttori

La dichiarazione permette anche di inizializzare l'oggetto sfruttando il costruttore della classe nel seguente modo:

string parola("valore iniziale");

oppure anche così:

string parola = "valore iniziale";

Operatori

La classe string ridefinisce tutta una serie di operatori standard del C (overloading) in modo che siano applicabili a oggetti di tipo string. Gli operatori principali della classe sono:

Principali metodi

I principali metodi della class string sono i seguenti:

Per una spiegazione degli altri numerosi metodi e operatori della classe string rimandiamo a cplusplus.com e a Cprogramming.com.

link precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it