我正在研究Pset2:破解,但我认为这里的背景并不重要。
我在crypt()
函数的输出中遇到了一些问题,并且我一直试图找出问题所在-我认为这是因为crypt()
输出了一个指针吗?我距离CS50只有2周的时间,并且已经阅读了一些指针。我了解它实际上并没有存储我要查找的数据,而是在内存中存储了数据的地址线,但是这种知识对我来说并不能解释为什么我不能使用crypt()
的输出使用均衡器==
。
无论如何,对于下面的代码或进一步阅读的任何帮助,我们将不胜感激。
int main(int argc, string argv[])
{
string key = "f";
string salt = "50";
string a = crypt(key, salt);
string x = "50AWs/7oe6pkA"; // this is the hash output from crypt(f, 50)
if(a == x)
{
printf("true\n");
}
}
我希望输出为“ true”,但(a == x)没有通过if条件
答案 0 :(得分:0)
将C字符串(char *)与 strcmp 进行比较,否则您只比较两个指针,在这里它们就不能相等
int main(int argc, string argv[])
{
string key = "f";
string salt = "50";
string a = crypt(key, salt);
string x = "50AWs/7oe6pkA"; // this is the hash output from crypt(f, 50)
if(!strcmp(a, x))
{
printf("true\n");
}
}