Page 501 - Informatica dalla A a Z
P. 501
Ora l’elemento stati[0] sarà “Francia”, stati[1] “Germania”, stati[2] “Italia” e stati[3] “Spa-
gna”.
Il secondo metodo per inizializzare un array è ricorrere alla seguente sintassi:
string[] stati = new string[4];
Ora che abbiamo creato un array di 4 stringhe, gli assegneremo i valori, in questo modo:
string[0] = “Francia”;
string[1] = “Germania”;
string[2] = “Italia”;
string[3] = “Spagna”;
Supponiamo ora di voler stampare a video tutti i nomi delle nazioni europee contenuti
nell’array appena creato:
for ( int i = 0; i < stati.Length; i++ )
{
Console.WriteLine( stati[i] );
}
Lo spezzone di codice appena scritto non fa altro che usare la variabile i del ciclo come in-
dice per scorrere gli elementi dell’array.
Si noti che in stati.Length viene memorizzato il numero di elementi presenti nell’array.
Abbiamo a disposizione anche un altro metodo per scorrere gli elementi di un array: il co-
strutto foreach.
foreach ( string stato in stati )
{
Console.WriteLine( stato );
}
In questo modo si evita l’utilizzo degli indici e si perde la possibilità di modificare gli ele-
menti dell’array all’interno del ciclo.
Abbiamo visto già che la funzione scanf() non è adatta a trattare stringhe contenenti spazi
bianchi. Per questo esistono altre funzioni, come gets() e puts().
Gets() è una funzione standard che legge una intera riga da input, fino al primo carattere
di fine linea (‘\n’, newline) e l’assegna a una stringa:
gets(char *str); Assegna alla stringa str i caratteri letti.
Il carattere ‘\n’ è sostituito (nella stringa di destinazione str) da ‘\0’. Gets() restituisce la
stringa letta “str” o “NULL” in caso di fallimento.
Puts() è una funzione standard, equivalente a
printf(“%s\n”, s);
497