Le stringhe in C++ 

Prof. Mauro De Berardis - www.maurodeberardis.it

Una stringa č una sequenza di caratteri. Esempi: "Roma" e "Via San Marino 2". Le stringhe sono racchiuse tra virgolette doppie.

La Libreria Standard del C++ mette a disposizione una classe per la gestione delle stringhe.

Questa classe si chiama string  ed č definita nell'header file <string>.

Metodi e operatori principali della classe <string>

Tipo

Metodo

Descrizione-Esempio

 

string s;

Crea una variabile stringa s.

 

string s(“Roma”);

Crea una variabile stringa s e la inizializza con “Roma”

 

string s=“Roma”;

Crea una variabile stringa s e la inizializza con “Roma”

 

s1 = s2;

Assegna s2 a s1

 

s[i] = c;

Esempio: s=”Roma”; s[0]=’S’; allora s=”Soma”

 

s.at(i) = c;

Esempio: s=”Roma”; s.at(1)=’a’;allora  s=”Rama”

string 

s.substr(start,len);

Esempio: s=”Roma” s1=s.substr(0,3); allora s1=”Rom”

int

s.length();

Ritorna la lunghezza della stringa

int

s.size();

Ritorna la lunghezza della stringa

bool

s.empty();

True se la stringa č vuota, altrimenti false.

int 

s.find(c);

Posizione dell’ultima occorrenza del carattere c Esempio: s=”Roma”; p=s.find(‘o’);allora p=1

 

cin >> s;

>> input di una stringa

 

getline(cin, s);

Legge tutti i caratteri digitati fino a che si preme invio e li memorizza nella stringa s

 

cout << s;

<< output di una stringa

 

Concatenazione

Vengono utilizzati gli operatori + and +=

  Confronto tra stringhe Il confronto avviene con gli operatori ==,>,<;>=,<=,!= per ordine alfabetico

 

Esempio
#include <string>
#include <iostream>
using namespace std;
int main()
{
    string a="Paolo"; // in alternativa string a("Paolo")
    string b,c;
      //a[0]='P', a[1]='a', a[2]='o', a[3]='l',a[4]='o'

    cout <<"Nome: "<< a << endl; // Output: Paolo
    cout<<"\nInserisci cognome : ";
    cin>>b; // esempio "Rossi"
    c=a+" "+b; // concatena c= "Paolo Rossi"
    cout<<"\nLunghezza stringa c: " << c.length() << endl; // 11
    cout<<"\nLunghezza stringa c: " << c.size() << endl; // 11
    cout << "\nPrimo carattere di c: " << c[0] << endl; // P (la stringa inizia con l'indice 0)
    cout << "\nUltimo carattere di c: " << c[c.size()-1] << endl; // i (l'ultimo carattere č il terminatore della stringa)
    int cod=char(c[0]);
    cout <<"\ncodice ASCI del primo carattere: "<<cod<<endl;
    string d=c.substr(2,3);
    cout<<"\nSottostringa di c (3 caratteri a partire dall'indice 2): "<<d<<endl;// Output: olo
    for(int i=0;i<=c.size()-1;i++)
              {if (c[i]>'Z') c[i]=char(c[i]-32);}
    cout<<"\nStringa c in maiuscolo: "<<c<<endl<<endl;
    fflush(stdin);
    string nome;
    cout<<"\n\nInserisci nome e cognome: ";
    getline(cin,nome);
    cout<<"\nIl tuo nome e' "<<nome<<endl<<endl;
    system("pause");
    return 0;
}