non sono sicuro che nella lettura da file delle singole parole il carattere della stringa di terminazione venga aggiunto automaticamente ed in str ti trovi la parola senza il '\0' finale.
Tuttavia non l'ho provata.
Prova a fare un debugging con gdb.
ciao
sergio