C语言统计单词个数

 我来答
火神亮聊6
2017-06-27 · TA获得超过752个赞
知道小有建树答主
回答量:289
采纳率:98%
帮助的人:50.6万
展开全部

根据英语的书写习惯,在每个单词前后都会有空格分隔。 所以可以依据空格来划分单词。 

不过,由于空格可能存在连续多个,所以仅统计空格数是不可以的,需要更复杂一些的算法。 

一、算法设计:

核心思想是通过一个flag,来确定单词的起始, 每出现一个单词的起始,则表示存在一个单词。 这样统计出现的单词起始个数,即可获得单词总数。

1、flag初始为1;

2、遍历字符串。 

3、对于每个字符,如果出现非空格字符,且flag为1,则为单词起始,累加计数器。同时赋值flag为0。

4、在flag为0情况下,如果出现空格,表示上一个单词已经结束,设置flag为1。

5、 遍历结束后输出结果。

二、参考代码:

#include <stdio.h>
int main()
{
    char s[200];
    int i,n=0,flag=1;
    gets(s);//输入字符串。
    for(i = 0; s[i]; i ++)//遍历
    {
        if(flag == 1)
        {
            if(s[i] != ' ')//单词起始
            {
                n++;
                flag = 0;
            }
        }
        else if(s[i] == ' ')//上一个单词结束。
            flag = 1;
    }
    printf("%d\n", n);//输出结果。
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式