LabASD - Anagrammi

Moreno Marzolla moreno.marzolla@unibo.it

Ultimo aggiornamento: 2022-05-08

Progettare e realizzare un algoritmo in grado di trovare tutti gli anagrammi di una data parola che sono presenti in un elenco di parole.

Viene fornito un file wordlist.txt contenente circa 280000 parole italiane; non sono presenti lettere accentate, per cui i caratteri possono essere memorizzati in variabili di tipo char. Il programma accetta sulla riga di comando una stringa di caratteri \(s\), e stampa tutti gli anagrammi di \(s\) presenti nel file wordlist.txt. Si assuma che ogni parola sia anagramma di se stessa.

Ad esempio, il comando

    ./anagrammi prova

deve stampare:

parvo
pravo
prova

Le parole nel file dovrebbero già essere scritte con lettere minuscole; si consiglia però convertire i caratteri in minuscolo man mano che vengono letti, in modo da rendere il programma più robusto. A tale scopo si può usare la funzione int tolower(int c), dichiarata in <ctype.h>, che ritorna il codice ASCII della versione minuscola del carattere memorizzato in c.

Si può assumere che la lunghezza massima di ciascuna parola presente nel file e passata sulla riga di comando sia WORDLEN.

File