Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C程序计算给定字符串/句子中的单词?_C_Arrays_Count_Character_Words - Fatal编程技术网

C程序计算给定字符串/句子中的单词?

C程序计算给定字符串/句子中的单词?,c,arrays,count,character,words,C,Arrays,Count,Character,Words,我想通过计算单词之间的空格来计算给定字符串中的单词。这是我试过的代码 #include<stdio.h> #include<conio.h> #include<string.h> main() { int t,i,b=1; char a[100]; printf("Enter a sentence: "); gets(a); t=strlen(a); for(i=0;a[i]!='\0';i++) { if(a[i]=' ')

我想通过计算单词之间的空格来计算给定字符串中的单词。这是我试过的代码

#include<stdio.h>
#include<conio.h>
#include<string.h>
main()
{
 int t,i,b=1;
 char a[100];
 printf("Enter a sentence: ");
 gets(a);
 t=strlen(a);
 for(i=0;a[i]!='\0';i++)
 {
      if(a[i]=' ')
      {
           b++;
      }
 }
 printf("The number of words in the above sentence are %d",b);
 getch();
}
#包括
#包括
#包括
main()
{
int t,i,b=1;
chara[100];
printf(“输入一个句子:”);
获得(a);
t=strlen(a);
对于(i=0;a[i]!='\0';i++)
{
如果(a[i]='')
{
b++;
}
}
printf(“上述句子中的字数为%d”,b);
getch();
}
但我无法获得输出。我的字数一直不正确


谢谢D

您正在使用赋值运算符
=
进行比较

if(a[i]=' ')
您需要
==

if(a[i] == ' ')
有些人用这个

if (' ' == a[i])

为了防止这种错误。

if(a[i]='')
-->
if(a[i]='')
请使用
fgets(a,sizeof(a),stdin)gets()
本身可能会导致问题。我不能使用scanf吗?实际上我希望使用scanf,但我发现作为初学者,我应该使用get来输入用户数据。顺便说一下,fgets也不起作用。你认为我的算法有什么地方错了吗?
scanf()
会在找到空白时停止。无论是谁告诉你使用
gets()
你都不应该再听下去,这是一个不推荐使用的函数,
fgets()
显然要好得多。使用
scanf()
fgets()
不是你有多熟练的问题,而是你需要做什么。伙计,这太尴尬了。一天之内就犯了这么多愚蠢的错误。非常感谢,我已经搜索了大约30分钟了我宁愿出现编译警告也不愿使用“Yoda条件”。使用
-Wall-Wextra
,gcc给了我
警告:建议在赋值周围加括号,用作真值[-wParenthes]