Concetti Chiave
- In C, le stringhe sono rappresentate come array di caratteri terminati dal carattere nullo '\0', richiedendo una cella in più per la corretta gestione.
- Le stringhe possono essere inizializzate sia lettera per lettera che tramite stringhe letterali, con il carattere nullo automaticamente inserito se necessario.
- Quando un array di char ha una dimensione maggiore rispetto alla stringa utilizzata, le celle rimanenti vengono inizializzate a '\0'.
- Il carattere nullo è fondamentale per indicare la fine della stringa, anche se ci sono celle successive con contenuto.
- Le stringhe possono essere inizializzate solo al momento della dichiarazione, e sono utilizzate in funzioni come printf() racchiuse tra apici.
In C non c’e un tipo di dato specifico per le stringhe come invece esiste in altri linguaggi di programmazione ad alto livello, perciò viene usato un array monodimensionale terminato dal carattere nullo ‘\0’ (codice ascii 0), perciò è necessario inserire una cella in più alla lunghezza della stringa. Questo carattere permette di distinguere tra array di char e stringhe (se si utilzza %s su array di char generico il comportamento e non definito).
Inizializzazione delle stringhe
È possibile inizializzare una stringa in due modi:
- lettera per lettera (es. char s [7] = {'s','t','r','i','n','g','\0 '};)
- con una o più stringhe letterali (es. char s[ ] = " string "; char s[ ]=”str””ing”;)
Se la dimensione di una stringa è dichiarata maggiore rispetto alle celle utilizzate, quelle rimanenti vengono inizializzate automaticamente ‘\0’ quindi e possibile omettere il carattere nullo a meno che non ci sia una stringa con lunghezza non definita, invece se essa viene inizializzata con una stringa letterale, allora ‘\0’ e implicitamente inserito alla fine della riga.
Il carattere nullo indica la fine della stringa nonostante le celle successive abbiano contenuto.
Poichè le stringhe sono array monodimensionali di char e possibile inizializzarle solo al momento della dichiarazione.
Le stringhe sono quelle parti di testo che sono racchiuse tra apici nella funzione printf() per esempio.
Domande da interrogazione
- Qual è la differenza tra un array di char e una stringa in C?
- Qual è la differenza tra un array di char e una stringa in C?
- Come si può inizializzare una stringa in C?
- Come si può inizializzare una stringa in C?
- Cosa succede se la dimensione di una stringa dichiarata è maggiore rispetto alle celle utilizzate?
- Cosa succede se la dimensione di una stringa dichiarata è maggiore rispetto alle celle utilizzate?
In C, un array di char non è necessariamente una stringa; una stringa è un array di char terminato dal carattere nullo ‘\0’, che indica la fine della stringa. Senza questo carattere, il comportamento dell'array è indefinito quando si utilizza il formato %s.
In C, un array di char non è necessariamente una stringa; una stringa è un array di char terminato dal carattere nullo ‘\0’, che indica la fine della stringa. Senza questo carattere, il comportamento dell'array è indefinito quando si utilizza il formato %s.
Una stringa in C può essere inizializzata in due modi: lettera per lettera, ad esempio `char s[7] = {'s','t','r','i','n','g','\0'};`, oppure utilizzando stringhe letterali, come `char s[] = "string";`. In quest'ultimo caso, il carattere nullo è automaticamente aggiunto alla fine.
Una stringa in C può essere inizializzata in due modi: lettera per lettera, ad esempio `char s[7] = {'s','t','r','i','n','g','\0'};`, oppure utilizzando stringhe letterali, come `char s[] = "string";`. In quest'ultimo caso, il carattere nullo è automaticamente aggiunto alla fine.
Se la dimensione di una stringa è dichiarata maggiore rispetto alle celle utilizzate, le celle rimanenti vengono automaticamente inizializzate a ‘\0’. Questo consente di omettere il carattere nullo, a meno che non si utilizzi una stringa con lunghezza non definita.
Se la dimensione di una stringa è dichiarata maggiore rispetto alle celle utilizzate, le celle rimanenti vengono automaticamente inizializzate a ‘\0’. Questo consente di omettere il carattere nullo, a meno che non si utilizzi una stringa con lunghezza non definita.