统计单词个数 c语言求

对于一个句子字符串(不超过100个字符),所有字符中不含任何标点,单词之间以若干空格分隔,统计其中的单词个数。(提示:找每个单词起始位置)

程序输入若干句子,依次输出单词个数。

输入格式:
一行一个句子,输入可能多行。

输出格式:
输出单词个数,一个结果一行。

输入样例:
I am a slow walker but I never walk backwards
I LOVE YOU
结尾无空行
输出样例:
10
3
结尾无空行

判断字母是第一个字符或前面是空格

#include <stdio.h>

int main(void)
{
    char s[101];
    int i,count;
    while (gets(s)){
        count=0;
        for(i=0;s[i]!='\0';i++)
            if((s[i] >= 'A' && s[i] <= 'Z' || s[i] >= 'a' && s[i] <= 'z') && (i==0 || s[i-1]==' '))
                count++;
        printf("%d\n",count);
    }
    return 0;
}


判断连续两个字符是否前面一个为空格,后面一个不是空格,则是一个单词

#include <stdio.h>
int main()
{
    int count=0,i=0,spaceflag = 1;
    char s[101];
    gets(s);
    while(s[i] != 0)
    {
        if(s[i] != ' ')
        {
              if(spaceflag == 1)
                   count++;
              spaceflag = 0;
        }
        else
            spaceflag = 1;
        i++;
    }
    printf("%d",count);
}

求代码