Buon giorno a tutti , ho fatto questo programma per calcolare la lunghezza di una frase e funziona solo che da qualche problema ...

vi posto il codice :

codice:
#include<stdio.h>
#include<conio.h>
int main(void)
{
    char a[50];
    int i,j,cont=0,cont2=0;
    printf("inserisci la frase\n");
    gets(a);
      for(i=0;a[i]!='\0';i++)
      { 
        if((a[i]>='a')&&(a[i]<='z')||(a[i]==' '))                     
        cont++;                                          
        if(a[i]==' '){
          printf("%d\n",cont-1);
          cont=0;
          }
         
        
      }
     
      while(a[i]!=' '){
                i--;
               if((a[i]>='a')&&(a[i]<='z')||(a[i]==' '))    
                cont2++;
                
                }
                if(a[i]==' ')
                printf("%d",cont2-1);
                
    printf("\n\nPremere un pulsante per chiudere il programma");
    getch();
}
allora il problema è il seguente .. quando vado a eseguire il programma per la prima volta e inserisco qualsiasi frase o anche una parole mi dice alla fine il risultato esatto di quantè lunga quella frase o parola ... però certe volte mi succede che quando vado a inserire una parola sola magari "Ciao" mi dice che è lunga 5 lettere invece di 4 e lo stesso avviene quando nn inseirsco nessuna parola mi stampa o 0 o 1 o un numero a caso e volevo chiedervi come faccio a sistemarlo?