LabASD - T9

Moreno Marzolla moreno.marzolla@unibo.it

Ultimo aggiornamento: 2021-03-25

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 da tabella seguente:

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 date in input a questo programma abbiano lunghezza strettamente minore di MAXLEN, e che contengano esclusivamente lettere maiuscole o minuscole; come detto sopra, non si fa 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