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: