怎么判断字符串中单词个数(用C语言)

2025-01-08 09:59:45
推荐回答(4个)
回答1:

如果各单词间没有空格或其他标志符,是很难判断的.可能你要在你的程序里放一部英文字典,然后再查表决定有多少个单词了
有空格和符号就好办了.对每个字母循环判断,只要不是字母就给计数器加1,最后的计数就是单词个数.
判断是不是字母可以用比较字母整形值的办法,我记得好象大写的字母在23到48之间,小写的在51到76之间.可能不对,你查一下就知道了.
只要不在这两个数字范围内就不是字母.
另外对于特殊符号比如单引号,你可以查出它的数值,在判断的时候如果是单引号就跳过不计数.

回答2:

#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,判断有多少个字母

回答3:

#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);
}

回答4:

/*
============================================================================
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//判断如果是空格,我们就设置words=0
if(arr[i]==' '){
words=0;
}else if(words==0){
num++;
words=1;
}
}
printf("单词的个数:%d",num);
return 0;
}