输入一个以空格分隔的单词串,输出单词的个数。思路

输入一个以空格分隔的单词串,输出单词的个数。这个用C语言怎么实现?

方法1:

#include<stdio.h>

int main()
{
    int con = 0;
    char str[100] = { 0 };
    //scanf遇到空格或者换行就会停止本次读取,所以每停止一次就让con加一
    while (scanf("%s", str) == 1)    
        //返回值为读取变量的个数,这里输入一个字符串变量,返回值为1
        //停止读取的方法是Ctrl+z,VS上需要先按一次Ctrl+z然后回车一下,连续三次
    {
        con++;
    }
    printf("单词个数为:%d\n", con);
    return 0;
}

示例:

img

方法2:

#include<stdio.h>

int main()
{
    char str[200] = { 0 };
    //gets是专门用来读取一个字符串用的,
    //但是由于gets无法限制读取字符个个数,所以不安全,
    //因此在新版的编译器上gets是禁止使用的,
    //这里使用的fgets 200 是最多读取的字符个数,
    //最后面的“stdin”是标准输出,同学直接记住就可以

    fgets(str, 200, stdin);
    int con = 0;//统计单词个数

    int i = 0;//遍历字符串
    while(1)
    {
        if (str[i] == ' ')
        {
            con++;//一个单词结束就加1
        }

        if (str[i] == '\0')
        {
            con++;//遇到结尾就跳出
            break;
        }
        i++;
    }

    printf("单词个数为:%d\n", con);
    return 0;
}

示例:

img