Come usare le stringhe nel linguaggio C
Il linguaggio C utilizza le stringhe in modo diverso rispetto agli altri linguaggio di programmazione, perché distingue tra caratteri e stringhe.
Cos'è una stringa? Una stringa è una sequenza finita di caratteri alfanumerici ( lettere, numeri, simboli ). Ad esempio, la frase "Hello World!" è una stringa.
Quale è la differenza tra stringhe e caratteri
Un carattere è composto da un solo simbolo alfanumerico ( es. "A" )
Una stringa, invece, è composta da due o più simboli alfanumerici ( es. "Andrea" ).
Nel linguaggio C queste informazioni sono gestite in modo diverso.
Per memorizzare un singolo carattere si utilizza una variabile di tipo CHAR.
char nomevariabile;
nomevariabile="A";
Per memorizzare le stringhe, invece, si utilizza una variabile array di tipo CHAR.
char nomevariabile[20];
nomevariabile="Andrea";
Una variabile array ( matrice ) consente di memorizzare un'intera sequenza di caratteri.
Il carattere di fine stringa
Le stringhe in linguaggio C sono delimitate da un carattere di fine stringa che segue l'ultimo carattere della stringa.
Si tratta di un carattere di tipo NULL che svolge la funzione di delimitatore.
A cosa serve il delimitatore? Il carattere delimitatore consente al compilatore C di capire qual è la fine di una stringa. Se non ci fosse, il compilatore non saprebbe quando fermarsi, continuando a leggere il contenuto della variabile.
Un esempio pratico
Ad esempio, la stringa "Hello World!" è composta da 12 caratteri.
Tuttavia, considerando anche il delimitatore finale, la reale lunghezza della stringa è di 13 caratteri.
E' un aspetto importante da considerare quando si dichiara la lunghezza delle variabili di un programma, perché si rischia di sottodimensionare le variabili e perdere informazioni rilevanti.
Inoltre, se si crea una stringa senza delimitatore finale, le funzioni predefinite del linguaggio C non funzionano più correttamente quando devono elaborarla.
Per questa ragione bisogna sempre ricordarsi di aggiungerlo.
Qual è il carattere delimitatore?
Nel linguaggio C il carattere delimitatore delle stringhe è il carattere Null.
Nel codice ASCII è il carattere con codice numerico uguale a zero.
Attenzione. Non il carattere "0" ma il primo carattere del codice ASCII, quello con codice numerico uguale a zero.
Come dichiarare una variabile stringa nel linguaggio C
Per dichiarare una variabile stringa in C bisogna dichiarare un array di tipo char.
La sintassi della dichiarazione di una stringa è la seguente:
CHAR nome stringa[numero elementi]
Un esempio pratico
Voglio dichiarare una variabile stringa per registrare il nome dell'utente.
Dichiaro una variabile dandogli il nome "nomeutente" e la dimensiono a 20 caratteri.
char nomeutente[20]
In questo modo ho creato un array composto da 20 caratteri, più che sufficienti per memorizzare le lettere di un nome.
Nota. La lunghezza della variabile comprende anche il carattere delimitatore finale della stringa. Quindi, una variabile stringa dimensionata a 20 caratteri è lunga 21 caratteri.