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: