我一直试图为即将过生日的人制作一个小程序,遗憾的是我被困在第一部分,我插入
#include <stdio.h>
#include <stdlib.h>
int main(){
char name[10];
printf("Please enter your name. \n");
scanf("%s", &name);
if(name=='Mariana'){
printf("Hello Onee-sama");
}
else if(name=='David'){
printf("Im sure you're not my master");
}
else{
printf("Sorry, you are not authorized");
}
}
(我恳求你忽略异常)当我运行它时,无论我插入什么名字,它都会给我别的回应。我真的很感激帮助:)
答案 0 :(得分:1)
KopKoder编写的代码完美无缺。只是添加解释为什么必须使用strcmp或strncmp而不是&#39; ==&#39;运营商。 C字符串实际上是char数组或指向char的指针,这意味着将指针与const数组进行比较将始终产生意外结果。以下链接可以更好地解释您的问题。
C String -- Using Equality Operator == for comparing two strings for equality
答案 1 :(得分:0)
您只需要使用strcmp来比较C char数组。这是您的代码修改。 希望这有帮助!
#include <stdio.h>
#include <stdlib.h>
int main(){
char name[10];
printf("Please enter your name. \n");
scanf("%s", &name);
if( (strcmp(name,"Mariana")) == 0){
printf("Hello Onee-sama");
}
else if((strcmp(name,"David"))==0){
printf("Im sure you're not my master");
}
else{
printf("Sorry, you are not authorized");
}
}