Ritorna alla pagina del corso.

Questa pagina contiene gli esercizi proposti in laboratorio e -alcune- delle soluzioni proposte.
Si suggerisce di provare a risolvere gli esercizi e solo in un secondo tempo di confrontare quanto fatto con le soluzioni proposte.

01: /*
02: 3. Array statico di stringhe: si definisca un array di stringhe,
03:    inizializzandolo con i nomi dei sette nani: Mammolo, Brontolo,
04:    Eolo, Pisolo, Dotto, Gongolo, Cucciolo Quali sintassi posso usare?
05: 
06: 4. Si modifichi il precedente esercizio di modo che il programma
07:    confronti quanto passato sulla linea di comando con gli elementi
08:    nell'array e stampi le parole presenti sulla linea di comando che
09:    non corrispondono al nome di alcun nano
10: 
11: */
12: #include<stdio.h>
13: #include<stdlib.h>
14: #include<string.h>
15: 
16: int main(int argc, char **argv){
17: 
18:   char *nani[] = { "Mammolo", "Brontolo", "Eolo", "Pisolo", "Dotto", "Gongolo", "Cucciolo" };
19: 
20:   // primo ciclo su parole su linea di comando
21:   for(int j = 1; j < argc; ++j)
22:   {
23:     int parolatrovata = 0;  // flag che mi permette di capire se la parola c'e' nell'elenco dei nani
24:           //
25:     // secondo ciclo sui nomi dei nani
26:     for(int i = 0; i < sizeof(nani)/sizeof(nani[0]); ++i) // uso il rapporto dimensioni array e dimensioni singolo elemento (o riga nel caso dell'array statico) per
27:     {
28:       if(!strcmp(argv[j], nani[i]))
29:       {
30:   parolatrovata = 1;
31:   break;
32:       }
33:     }
34: 
35:     if(!parolatrovata) // non corrispondeva a nessun nome di nano quindi...
36:       printf("La parola %s non corrisponde a nessun nome di nano\n", argv[j]);
37:   }
38: 
39:   return 0;
40: }
41: 
42: // PROBLEMI APERTI: maiuscole e minuscole vengono trattate differentemente. 
43: // Esercizio per casa: modificatelo di modo che maiuscole e minuscole non facciano differenza
44: 
45: