read_line
: quando scrivi una riga più lunga di 20 caratteri, tu stoppi la lettura, quindi il resto della parola viene considerata come un parola nuova anche se non è quello che ci si aspetta. Inoltre parli di parola, ma nel tuo codice una riga come:- Codice:
una riga con più parole
viene letta come due parole:
una riga con più p
e arole
(o qualcosa del genere, ho calcolato a mano il punto in cui si spezza).Inoltre, e questo è un errore grave, passi alla funzione read_line il valore
MAX_WORD
, anche se puoi al massimo scrivere MAX_WORD-1
caratteri. Insomma str[MAX_WORD]
è fuori dalla stringa.P.S.: errore mio: ho aggiunto mentalmente un break dove non c'era. Ma il secondo errore c'è ed è qualcosa su cui devi fare attenzione.