Il Tipo Stringa del C++

Scritto da ambrix on . Postato in Corsi Programmazione

logo programmazione c++

Lezione#06 Il Tipo Stringa in C++, il linguaggio di programmazione a oggetti più conosciuto nel mondo informatico.

Non esiste in C++ un vero e proprio tipo stringa. Si adopera allo scopo un vettore di caratteri e il  terminatore \0 .

In effetti, se ci riferiamo al linguaggio C, vediamo come questo ha introdotto le  stringhe di caratteri . Tuttavia, come già scritto, in c++ le stringhe sono rappresentabili in array di caratteri che terminano con il simbolo \0.

\0 è il carattere NULL del codice ASCII. Quindi le stringhe che terminano in questo modo sono note come stringhe con terminazione null.

// Esempio #01
char ourString[7] = {'W', 'a', 's', 's', 'u', 'p', '\0'}; 
cout << ourString;
Wassup

Il terminatore \0 non viene stampato, tuttavia dobbiamo dimensionare il nostro array in modo tale da tenerlo in conto.

Quindi per creare una stringa di caratteri in c++, usiamo un vettore di tipo char.  In ogni caso attribuiremo un elemento in più per il carattere null ad ogni vettore che inizializziamo.

All’uopo è disponibile un insieme di funzioni appartenenti a librerie standard, tra queste ritroviamo la libreria string.

// Esempio #02
string name = "Peter";
cout << name;
Peter

Quello che stiamo facendo, nell’esempio #02, è la creazione di una nuova istanza della classe stringa. Tutto molto semplice, dichiariamo il tipo, diamo il nome e quindi inizializziamo con un valore.

Operazioni sulle Stringhe.

.length() è uno dei metodi più utilizzati con le stringhe. Provate ad immaginare cosa può fare!

// Esempio #03
string str = "Honorificabilitudinitatibus";
int leng = str.length();
cout <&lt; leng; 
27

Basta scrivere .length () dopo la stringa per averne la lunghezza!

Honorificabilitudinitatibus è l’ablativo plurale della parola del latino medievale honorificabilitudinitas, che può essere tradotta come “la condizione di essere in grado di acquisire cariche”.
 
Se vogliamo unire due o più stringhe possiamo ricorrere alla cosiddetta concatenazione.
// Esempio #04
string str1 = "Hello ";
string str2 = "World!";
string str3 = str1 + str2;
cout << str3; 
Hello World!

Ricordiamo che una stringa è un vettore di caratteri. Pertanto possiamo accedere ad una stringa allo stesso modo in cui accediamo ad un vettore numerico. Proviamo a ricercare il quinto carattere della seguente stringa. (Si tenga presente che si inizia a contare da zero).

// Esempio #05
string str = "Bud Spencer is Awesome";
cout << str[4]; 
S
Può capitare di avere a che fare con una stringa molto lunga, e vogliamo trovare una stringa più piccola o un carattere al suo interno. In tal caso possiamo ricorrere al metodo .find().
// Esempio #06
string str1 = "Bud Spencer is awesome!";
string str2 = "awesome!";
int position = str1.find(str2);
cout << position;
15
Il valore che si ha è di tipo int. Esso rappresenta la posizione dell’indice da cui inizia la sottostringa (nell’esempio #06 è la str2). Ricapitolando, utilizziamo il metodo .find () sulla stringa più lunga e gli diamo in pasto la stringa che vogliamo trovare.
 
Se vogliamo rimuovere caratteri da una stringa, possiamo usare il metodo .erase ().
// Esempio #07
string str = "Bud Spencer is awesome!";
str.erase(11);
cout << str;
Bud Spencer
Alla funzione erase(), possiamo anche passare due argomenti separati. Il primo indica da dove iniziare a cancellare e il secondo di quanti posti si vuole continuare ad eliminare.

Ritorna alla precedente <– []–> Vai alla successiva

Per Richieste, Avvisi e Lasciti Ereditari

Disclaimer

I contenuti di questo Blog (testi, immagini, foto, etc.) sono di mia creazione, tranne nei casi dove espressamente indicato.