我似乎无法弄清楚这有什么问题。它编译得很好,但无论我输入什么,无论是或否,它都会跳过“让我们开始”的行并直接走到最后。
#include<stdio.h>
#include<stdlib.h>
int main(){
char response[5];
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("Would you like to go on an adventure?\n Enter Yes or No:");
scanf("%s", response);
if (response == "yes"){
printf("Let's begin!");
}
else (response == "no");{
printf("See you later then!");
}
return 0;
}
是否需要移动扫描,或者我只是以某种方式将其搞砸了?
答案 0 :(得分:1)
更改
if (response == "yes"){
到
if(!strcmp(response, "yes") {
对于“否”检查,如果要明确检查“否”,请写else if(!strcmp(response, "no") {
。
答案 1 :(得分:0)
您正在比较字符数组。所以==
将不起作用。
要么为2个字符数组实现equals函数,要么使用字符串类。
答案 2 :(得分:0)
if (strcmp(response, "yes")==0){
printf("Let's begin!");
}
else {
printf("See you later then!");
}
您无法比较两个char数组。当字符串相同时,从strcmp返回0。一定要包括。
答案 3 :(得分:0)