LabASD - Codifica T9

Moreno Marzolla

Ultimo aggiornamento: 2022-02-19

Realizzare un programma che stampa tutte le parole presenti nel file wordlist.txt che hanno la stessa codifica T9 di una parola specificata sulla riga di comando. La codifica T9 associa a ciascuna delle 26 lettere dell’alfabeto un numero, come indicato nella Tabella 1.

Tabella 1: codifica T9
Ognuno dei caratteri corrisponde a
abc 2
def 3
ghi 4
jkl 5
mno 6
pqrs 7
tuv 8
wxyz 9

Quindi le lettere a, b e c vengono tutte codificate con il singolo carattere 2, le lettere d, e, f dal carattere 3 e così via; non si fa distinzione tra lettere maiuscole e minuscole. Questo tipo di codifica era utilizzato dai vecchi cellulari.

Alcuni esempi:

La stringa diventa
Informatica 46367628422
algoritmi 254674864
ciao 2426

Si può assumere che le stringhe in input abbiano lunghezza strettamente minore di MAXLEN, e che contengano esclusivamente lettere maiuscole o minuscole; non si deve fare distinzione fra maiuscole e minuscole. Ricordiamo che per convertire un carattere \(c\) in minuscolo si può usare la funzione int tolower(int c) dichiarata in <ctype.h>.

Alcuni esempi di esecuzione del programma:

Input Output
./t9 ciao
ciao 2426
cibo 2426
2 occorrenze
./t9 tavolo
tavolo 828656
1 occorrenza
./t9 etna
duna 3862
etna 3862
fuma 3862
3 occorrenze
./t9 tablet
0 occorrenze

Si noti che la parola specificata sulla riga di comando non deve necessariamente comparire nel file wordlist.txt.

File