#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;单独写出来的原因