argh, indentato un attimo malaccio, mi stavo per confendere

comunque, se ti fai un esempio su carta, lo capisci al volo
quel i-- serve per controllare anche quando ci sono più di due spazi di fila

se per esempio ce ne fossero tre (con " _" indico uno spazio per semplicità)

parola _ _ _parola
dopo un iterazione del tuo programma diventerebbe
parola _ _ parola

il problema è che a questo punto, nel TUO codice, la tua i che punta al primo spazio, si sposterebbe subito sul secondo spazio e analizzerebbe i caratteri successivi: ERRATO

nel codice del tuo professore invece, fa un bel i--, quindi all'iterazione successiva il programma si ritrova sullo spazio precedente, e si rende conto immediatamente che subito dopo c'è un altro spazio, e che quindi è presente la sequenza di due spazi di fila che stai ricercando