vale1411
Genius
1 min. di lettura
Vota

Concetti Chiave

  • In C, le stringhe sono gestite come array monodimensionali di char terminati dal carattere nullo '\0'.
  • La terminazione con '\0' permette di distinguere le stringhe dagli array di char generici.
  • È possibile inizializzare una stringa lettera per lettera o usando stringhe letterali.
  • Se la dimensione dichiarata di una stringa è maggiore delle celle usate, le rimanenti sono automaticamente riempite con '\0'.
  • Le stringhe in C possono essere inizializzate solo al momento della dichiarazione.

Stringhe

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).
È 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 e risposte

Hai bisogno di aiuto?
Chiedi alla community