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: // 8. chieda due parole e verifichi se una e' anagramma dell'altra
02: 
03: #include<stdio.h>
04: #include<stdlib.h>
05: #include<string.h>
06: 
07: int main(int argc, char **argv){
08:   char s1[2000], s2[2000];
09: 
10:   printf("Inserisci due parole: ");
11:   scanf("%s %s", s1, s2);
12: 
13:   if(strlen(s1) != strlen(s2))
14:   {
15:     printf("Le due parole hanno lunghezze differenti e quindi non sono una anagramma dell'altra\n");
16:     return 0;
17:   }
18: 
19:   for(int i1 = 0; i1 < strlen(s1); ++i1) // scandisco tutti i caratteri della prima stringa
20:   {
21:     
22:     int found = 0;
23:     for(int i2 = 0; i2 < strlen(s2); ++i2) // lo cerco tra i caratteri della seconda stringa
24:     {
25:       if( s1[i1] == s2[i2] )
26:       {
27:   found = 1;    // segno che l'ho trovata
28:   s2[i2] = '#'; // la cancello nella seconda parola di modo che non vegna piu' trovata
29:   break;        // inutile proseguire
30:       }
31:     }
32: 
33:     if( !found )
34:     {
35:       printf("Le due parole NON sono anagramma una dell'altra\n");
36:       return 0;
37:     }
38:   }
39: 
40:   printf("Le due parole sono anagramma una dell'altra\n");
41: 
42: 
43: 
44:   return 0;
45: }
46: 
47: