prof. Nunzio Brugaletta Programmazione e linguaggio C

EnneBi - Programmazione
Avanti Indietro Inizio


3.4 Stringhe

In C uno degli utilizzi degli array ad una dimensione riguarda la conservazione in memoria di stringhe di caratteri: queste in C sono vettori di tipo carattere la cui fine è segnalata da un carattere null (carattere terminatore), indicato come '\0'.

Il carattere null è il primo codice ASCII corrispondente al valore binario 00000000 e non ha niente a che vedere con il carattere 0 che ha, in ASCII, codice binario 00110000.

char a[10];

dichiara un vettore costituito da un massimo di dieci caratteri e:

char frase[] = "Oggi il cielo è sereno";

dichiara l'array monodimensionale frase il cui numero di caratteri è determinato dalla quantità di caratteri presenti fra doppi apici più uno (il carattere null che chiude la stringa).

È importante notare la differenza tra le due assegnazioni:

char a   = 'r';
char b[] = "r";

Nel primo caso viene assegnato il solo carattere r, nel secondo la stringa r\0. In definitiva: se si vuole fare riferimento ad un solo carattere, questo deve essere racchiuso fra apici singoli; se, invece, si vuole fare riferimento ad una stringa, occorre racchiuderla fra doppi apici.

Sono disponibili parecchie funzioni specifiche per il trattamento delle stringhe nonostante il linguaggio C non possieda un dato di tipo stringa:

#include <stdio.h>
main() {
  char s[80];     /* dichiara la stringa */
  gets(s);        /* riceve l'input */
  puts(s);        /* fornisce l'output */
}

Altre funzioni per il trattamento delle stringhe sono disponibili, per usi particolari, a patto che si includa nel programma la linea: #include <string.h>.

strcpy(s1,s2);
strcat(s1,s2);
strcpy(s1,"buon");      /* stringa specificata in s1 */
strcpy(s2,"giorno");    /* lo stesso per s2 */
strcat(s1,s2);          /* s1 conterrà "buongiorno" */
strlen(s1);
strcmp(s1,s2);

    Per tenere conto mnemonicamente di tali valori, basta pensare al confronto come ad una sottrazione: fra l’altro ciò non è molto distante da quello che avviene in effetti. Se da s1 si sottrae s2 si avrà un valore positivo nel caso s1>s2, negativo se s1<s2 e nullo se sono uguali



Avanti Indietro Inizio

http://ennebi.solira.org ennebi@solira.org