Contando palabras en una cadena - programación en c

Necesito escribir una función que cuente las palabras en una cadena. Para el propósito de esta asignación, una "palabra" se define como una secuencia de caracteres que no son nulos ni de espacios en blanco, separados de otras palabras por espacios en blanco.

Esto es lo que tengo hasta ahora:

int words(const char sentence[ ]);

int i, length=0, count=0, last=0;
length= strlen(sentence);

for (i=0, i<length, i++)
 if (sentence[i] != ' ')
     if (last=0)
        count++;
     else
        last=1;
 else
     last=0;

return count;

No estoy seguro de si funciona o no, porque no puedo probarlo hasta que todo el programa haya finalizado y no esté seguro de que funcione, ¿hay una mejor manera de escribir esta función?

Respuestas a la pregunta(12)

Su respuesta a la pregunta