问题:输入一行字符,统计其中有多少个单词,单词之间用空格
问题的关键在于怎么样判定出现一个新单词
一个新单词前面应该为空格(除了第一个单词),可以以此为突破点
给定一个字符数组,求单词数量
#include <stdio.h>
#include<string.h>//使用字符数组相关的头文件
int main()
{
char str[] = "Hello Everyone";//定义一个字符数组
int i, word, flag;
word = 0;
flag = 0;
for (i = 0; str[i] != '\0'; i++)//'\0'是字符数组结束的标志
{
if (str[i] ==' ')//判断其是否为空格
{
flag = 0;
}
else if (flag == 0)
{
word++;
flag = 1;
}
}
printf("word=%d\n", word);
}
通过gets输入字符数组时,vs高一点的版本由于动态规划的LCS问题,使用时需变为gets_s
#include <stdio.h>
#include <string.h>
int main ()
{
char str[81];
gets_s(str);
int i,flag,word;
flag=0;
word=0;
for(i=0;i!='\0';i++)
{
if(str[i]==' ')
{
flag=0;
}
else if(flag==0)
{
word++;
flag=1;
}
}
printf("word=%d",word);
}