关于“计算单词个数”的代码

代码要求:编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
我这个无法实现全部都是空格的输入情况,请问按我这个思路来加上该怎么加呢?

#include<stdio.h>
int main() {
    char b = 0;
    int i = 0, m = 0, shu = 0;
    char a =0;
    for (i = 0; i >= 0; i++) {
        a = getchar();
        if (a != ' ') {
            for (m = 0; m >= 0; m++) {
                b = getchar();
                if (b == ' ' || b == '\n') {
                    shu++;
                    break;
                }
            }
        }
        if (a == ' ') {
            continue;
        }
        if (a == '\n' || b == '\n') {
            break;
        }
    }
    printf("%d", shu);
    return 0;
}

请问你第5行getchar()的意义是什么呢???

#include<stdio.h>
int main() {
    int shu = 0,space=1;
    char c ;
    do
    {
        c  = getchar();
        if(c==' ' || c=='\n')
        {
            if(space == 0)
                shu++;
            space = 1;
        }
        else
            space = 0;
    }while(c != '\n');
    printf("%d", shu);
    return 0;
}