计算单词数这么写为什么不对?

思路:输入一段英文每次遇到空格单词数加一,为什么输出结果会是0

img

img

因为用scanf输入字符串,一遇到空格就停止了,输入的数据就只是第一个单词,又因为你的for循环从第一个字母开始,不会遇到空格,所以输出0。
修改代码:

#include<stdio.h>
#include<string.h>
int main()
{
    char c[16];
    gets(c);
    int i, word=1;
    for (i = 0; i < 16; i++)
    {
        if (c[i] == ' ')
            word++;
    }
    printf("%d\n", word);
    return 0;
}