Perchè non crei un nuovo post, invece di modificare quelli vecchi?
In ogni caso la parte relativa al conteggio può essere semplificata nel seguente modo:
int j;
for(int i = 0; i < n; ++i)
{
for(j = 0; j < m; ++j)
{
if(parola[j] != frase[i + j])
{
break;
}
}
if(j == m)
{
++nparole;
}
}
A questo punto però se non vuoi andare a leggere aree di memoria che nulla c'entrano con la frase inserita, devi ragionare su quanto già detto più volte nei precedenti post:
Per quanto riguarda la ricerca della parola nella frase, il tuo non mi sembra l'approccio migliore. Quello che farei è scorrere la frase dall'inizio finché c'è la possibilità effettiva di trovare la parola... mi spiego meglio, consideriamo
PAROLA: panettone
FRASE: buon natale
nello scorrere la FRASE possiamo tranquillamente fermarci alla lettera "o", in quanto andando oltre non c'è lo spazio materiale per contenere la PAROLA "panettone".
Hai letto il P.S e il P.P.S. del mio precedente post?