统计字符串中单词的数量
【问题描述】输入一行字符(不多于80个字符),统计并输出其中的“单词”数,这里所谓“单词”就是由可显示字符组成的一子字符串,“单词”间用一个或多个空格分隔,首“单词”前和末“单词”后,可以有也可以没有空格。
【输入形式】
从键盘输入一行字符(不多于80个字符)。
【输出形式】
输出“单词”的个数。
【样例输入】
abcd x1y2z3 qwe#$&% 789 * end
【样例输出】
6
-----------------------我写的代码输出总是 1 ,想不通问题出在了哪里,请各位帮忙查找一下------------------------
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int WordsNum(char *p)
{
int i,count=0,before=1;
for(i=0;p[i]!='\0';i++)
{
if(!isalpha(p[i]) && isalpha(p[i+1])) //前一个不是字母,后面的是字母
{
before = 1;
}
else
{
if(before)
count++;
before = 0;
}
}
return count;
}
int main()
{
char s[80];
int num;
scanf("%s",s);
num = WordsNum(s);
printf("%d\n",num);
return 0;
}