如果各单词间没有空格或其他标志符,是很难判断的.可能你要在你的程序里放一部英文字典,然后再查表决定有多少个单词了
有空格和符号就好办了.对每个字母循环判断,只要不是字母就给计数器加1,最后的计数就是单词个数.
判断是不是字母可以用比较字母整形值的办法,我记得好象大写的字母在23到48之间,小写的在51到76之间.可能不对,你查一下就知道了.
只要不在这两个数字范围内就不是字母.
另外对于特殊符号比如单引号,你可以查出它的数值,在判断的时候如果是单引号就跳过不计数.
#include
void main()
{
char str[81];
int i,num=0,word=0;
char c;
printf("please input the string:\n");
gets(str);
for(i=0;(c=str[i])!='\0';i++)
{
if(c==' ')
word=0;
else if(word==0)
{
word=1;
num++;
}
}
printf("There are %d words in the line.\n",num);
}
定义一个数组来储存字符串,然后就从数组的下标为0开始判断到n,判断有多少个字母
#include
void main()
{
char str[81];
int i,num=0,word=0;
char c;
printf("please input the string:\n");
gets(str);
for(i=0;(c=str[i])!='\0';i++)
{
if(c==' ')
word=0;
else if(word==0)
{
word=1;
num++;
}
}
printf("There are %d words in the line.\n",num);
}
/*
============================================================================
Name : c8.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include
#include
#include
int main()
{
char arr[100];
int i,num=0,words=0;
printf("请输入字符串:\n");
fflush(stdout);
//接受用户输入
gets(arr);
//查找遍历查找空格
for(i=0;i
if(arr[i]==' '){
words=0;
}else if(words==0){
num++;
words=1;
}
}
printf("单词的个数:%d",num);
return 0;
}