这个题怎么解
下面程序的功能是从键盘输入一行字符,统计其中有多少单词。假设单词之间以空格分开。已知:判断是否有新单词出现的方法——当前被检验字符不是空格,而前一被检验字符是空格,则表示有新单词出现。#include <stdio.h>
main()
{
charstr;
int i, num;
scanf("%s", str);
if (str != ' ')
{
num = 1;
}
else
{
num = 0;
}
for (i=1; i<20; i++)
{
if (str!=' '|| str==' ')
{
num++;
}
}
printf("num=%d\n", num);
} 本帖最后由 肖-肖 于 2021-4-7 21:46 编辑
我总感觉用scaf接收一个字符串那么着是有问题滴,但我忘了怎么用scanf接收一个字符串了,这里先用gets吧!
代码如下:
#include <stdio.h>
int main()
{
charstr;
int i,num;
puts("请输入一串字符串!");
//scanf("%s", str);
gets(str);
if (str != ' ')
{
num = 1;//也就是你输入的字符串第一个字符是空格的话那么num=1
}
else
{
num = 0;//反之
}
for (i=1; str!='\0'; i++)
{
if (str!=' '&& str==' ')
{
num++;
}
}
printf("您输入的字符串中有%d个单词!\n", num);
return 0;
}
我已经验证过没问题的了。
验证效果如下:
请输入一串字符串!
I Love FishC.
您输入的字符串中有3个单词!
Process returned 0 (0x0) execution time : 5.557 s
Press any key to continue.
OK 希望对你有帮助{:5_110:} 肖-肖 发表于 2021-4-7 21:44
我总感觉用scaf接收一个字符串那么着是有问题滴,但我忘了怎么用scanf接收一个字符串了,这里先用gets吧!
代 ...
敢问一下 判断条件的str!='\0‘ 是啥意思 本帖最后由 肖-肖 于 2021-4-7 22:15 编辑
g1063496360 发表于 2021-4-7 22:01
敢问一下 判断条件的str!='\0‘ 是啥意思
这个是用来判断你输入的字符串是否为结尾的,\0是字符串的结束标志哦~
!='\0'就代表没结束,对吧
还有就是我改逻辑或为逻辑与了,肯定是逻辑与嘛,因为并且嘛,并且肯定是逻辑与了呀~ 肖-肖 发表于 2021-4-7 22:12
这个是用来判断你输入的字符串是否为结尾的,\0是字符串的结束标志哦~
还有就是我改逻辑或为逻辑与了, ...
哈哈好! 感谢大哥!
页:
[1]