我正在尝试做一个基本的if语句,我的字符串出现了这个奇怪的错误。
错误1:
指针和整数之间的比较('int'和'char *')
错误2:
未指定与字符串文字进行比较的结果(改为使用strncmp)
这是函数的副本全部发生在。
int logOn(int *par)
{
char p;
printf("Log into student records system\nEnter password or type cancel to leave\n>");
scanf("%s", &p);
if(p == *PASSWORD1 | p == *PASSWORD2 | p == *PASSWORD3)
{
*par = 2;
}
else if (p = "cancel")
{
*par = 3;
}
else
{
printf("\nIncorrect password try again\n");
}
return 0;
}
错误发生在else if
语句行(p = "cancel"
)上。
答案 0 :(得分:7)
这里有很多问题。
==
而不是=
。||
而非|
。char p
为单个角色腾出空间。您无法在char
变量中存储多字符密码。你需要一个字符串。==
进行比较。 p == *PASSWORD1
无法工作。我会留给你弄清楚它有什么作用。它很容易搜索。答案 1 :(得分:1)
用于比较字符串的函数位于编译器本身抛出的错误中。 (查找您发布的错误2中的函数并为其进行谷歌搜索。)