c语言——求单词个数

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char str[20];//定义一个字符型一维数组,长度为20
    int i,num;
    printf("请输入一行英文:\n");//提示语句
    gets(str);//输入一个字符串给字符数组str
    num = str[0]!= ' '? 1:0;//? : 是条件运算符,如果str[0]!=' '为真,则num = 1,否则num = 0。
    for(i=1;str[i]!='\0';i++)//由于字符串结束标志是'\0',只有str[i]!='\0',for循环才一直进行循环,否则退出循环
    {
        if((str[i]!=' ')&&(str[i-1]==' '))
                
        {
            num++;
        }
    }
    printf("num = %d\n",num);//打印单词的个数
    return 0;
}
if((str[i]!=' ')&&(str[i-1]==' '))

满足单词个数num++的条件:
若当前字符不是空格,而前一字符是空格,则表示有新单词出现
当我们输入i want to fly 时,i前面不是空格,但是他也算一个单词,
所以这就是 num = str[0]!= ' '? 1:0;单独写出来的原因

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值