while条件可以用字符串吗
#include <stdio.h>int main (void)
{
char key;
printf("Please enter cipher:");
scanf("%s", &key);
while (key != "pizza")
{
printf("\nfalse!\nPlease enter cipher:");
scanf("%s",&key);
}
printf("True!");
return 0;
}
代码如上,输对也跳不出循环 #include <stdio.h>
int main (void)
{
int key;
printf("Please enter cipher:");
scanf("%d", &key);
while (key != 9)
{
printf("\nfalse!\nPlease enter cipher:");
scanf("%d",&key);
}
printf("True!");
return 0;
}
数字的话就可以是字符串条件不应该这样设定吗 本帖最后由 huangz5426 于 2017-5-6 21:34 编辑
#include <stdio.h>
#include <string.h> //加了个头文件
int main (void)
{
char key;
printf("Please enter cipher:");
scanf("%s", &key);
// while (key != "pizza")
while ( strcmp(key,"pizza") ) //楼主百度以下strcmp吧
{
printf("\nfalse!\nPlease enter cipher:");
scanf("%s",&key);
}
printf("True!\n");
return 0;
}
利用strcmp函数来比较
while(strcmp(key,"pizza")!=0)
不好意思,应该改为while(strcmp(key,"pizza") != 0)
本帖最后由 为了明天而加 于 2017-5-7 23:24 编辑其实楼主这段代码存在错误哦。第八行中,在scanf函数中,既然是输入字符串,key前面就不能加取地址符号&。因为数组名本身就是数组的首地址。所以在第八和第十五行中去掉&。另外,你的while循环语句的循环条件也不恰当,因为key 与“pizza"的比较会出现三种情况,等于0,小于0,大于0。小于或等于0都会被判断为”假“,因此应该把循环条件改为while(strcmp(key,"pizza")==0)。这样应该据没什么问题了。希望对你有帮助,不懂可以追问
C语言没有 str="dahdadiah"这种比较方法,这比较的是两个地址,不可能相等的
页:
[1]