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]
。