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

  1. Qual è la differenza tra un array di char e una stringa in C?
  2. 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.

  3. Qual è la differenza tra un array di char e una stringa in C?
  4. 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.

  5. Come si può inizializzare una stringa in C?
  6. 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.

  7. Come si può inizializzare una stringa in C?
  8. 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.

  9. Cosa succede se la dimensione di una stringa dichiarata è maggiore rispetto alle celle utilizzate?
  10. 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.

  11. Cosa succede se la dimensione di una stringa dichiarata è maggiore rispetto alle celle utilizzate?
  12. 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.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community