Contando palavras em uma string - programação c

Eu preciso escrever uma função que contará palavras em uma string. Para o propósito desta atribuição, uma "palavra" é definida como uma sequência de caracteres não nulos, não brancos, separada de outras palavras por espaço em branco.

Isto é o que eu tenho até agora:

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;

Não tenho certeza se funciona ou não, porque não posso testá-lo até que todo o meu programa esteja concluído e não tenho certeza de que funcionará. Existe uma maneira melhor de escrever essa função?

questionAnswers(12)

yourAnswerToTheQuestion