输入一串字符串,统计单词的个数

问题描述:

输入一串字符串,输出其中有多少个单词,例如:I am a boy,输出4

方法一:

解题思路:
1、创建一个字符类型的数组,将输入的字符保存在字符数组中,每次从字符数组中读取一个字节,判断其是否为空格,如果遇到空格,则表示其是一个单词;
2、创建两个变量,用num统计单词的个数,word标记单词是否为新单词的状态;
3、如果遇到空格,将word置成0,如果是一个单词,则word一直置成1;

代码实现:

#include<stdio.h>
void main()
{
    char string[100];
    char c;
    int i=0, num = 0, word = 0;     //word为0,即使开头就为空格,认为是新单词的开始
    gets(string);
    while ((c = string[i++])!='\0')
    {
        if (c == ' ')               //为空格,就是代表新单词开始
        {
            word = 0;
        }
        else if (word == 0)         //c既不等于空格又是新单词的开始
        {
            num++;                  //单词个数加1
            word = 1;               //word=1  就不是新单词
        }
    }
    printf("%d\n", num);             
}

运行结果:
这里写图片描述

方法二:

解题思路:
统计一个字符串空格的个数,然后加1;(不建议使用,不严谨,没考虑两个单词之间有多个空格)

代码实现:

#include<stdio.h>
void main()
{
    char string[100];
    char c;
    int i = 0, num = 0;    
    gets(string);
    while ((c = string[i++]) != '\0')
    {
        if (c == ' ') 
        {
            num++;
        }   
    }
    num++;
    printf("%d\n", num);
}

运行结果:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_42820622/article/details/81514098