ho scritto questo programmino che dovrebbe contarmi le parole di 3 lettere che riceve di input da tastiera, ma c'è qualcosa che non va, dopo l'inserimento stringa, entra in loop, penso dipenda dall'ultimo if....

codice:
#include <stdio.h>
#include <string.h>

int main()
{
    char testo[100], separatori[]={' ','\n','\t','\0'};
    int n_caratteri,n_parole,i, contatore=0;
    printf("inserire testo: \n");
    gets(testo);

    for(i=0;i<100;i++)

    {
    while(testo[i]!='\0')
       {
        if(testo[i]!=' '|| testo[i]!='\n'||  testo[i]!='\t')
        n_caratteri++;
        else
        n_parole++;
        if(n_caratteri==3 && testo[i+1]==' ' || testo[i+1]=='\n' || testo[i+1]=='\t')
        {
            contatore=contatore+1;
            n_caratteri=0;
        }
    }
  }
  printf("numero di parole con 3 lettere: %d",contatore);

  return 0;
}
qualcuno saprebbe dirmi dove sbaglio???

grazie in anticipo, spero che stavolta il thread sia fatto bene...