C 这是为了验证密码
我刚开始用c,但没法用 我多次尝试编辑代码,甚至在网上查找一些示例,但未能理解这是如何工作的C 这是为了验证密码,c,C,我刚开始用c,但没法用 我多次尝试编辑代码,甚至在网上查找一些示例,但未能理解这是如何工作的 #include <stdio.h> #include <stdlib.h> #include <conio.h> int main() { const char p1[10]="admin"; char p2[10]; printf("Password Required:"); scanf("%s", &p2) if (p2==p1) { pr
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
const char p1[10]="admin";
char p2[10];
printf("Password Required:");
scanf("%s", &p2)
if (p2==p1)
{
printf("Access Granted")
}
else
{
printf("Invalid Password")
}
}
#包括
#包括
#包括
int main()
{
常量字符p1[10]=“管理员”;
charp2[10];
printf(“需要密码:”);
scanf(“%s”、&p2)
如果(p2==p1)
{
printf(“授权访问”)
}
其他的
{
printf(“无效密码”)
}
}
这是为了验证输入的密码是否正确。您的问题在这一行:
if (p2==p1)
您正在比较内存地址,以查看它们是否相等,而不是存储在(即指向)它们的内容。要比较密码,请使用:
if (strcmp(p2, p1) == 0)
请参阅:Yes的精确副本,这将帮助我比较字符总数,但我不确定它是否会看到字符是否匹配。您需要阅读我发布的文章-strcmp()不比较字符数,它返回一个表示相等的值:此函数返回如下值− 如果返回值<0,则表示str1小于str2。如果返回值>0,则表示str2小于str1。如果返回值=0,则表示str1等于str2。使用strcmp并查看它们是否等于0。好的,谢谢。编辑代码可以改进答案。。。