我想找出为什么比较功能不能给我正确的结果?
据我所知,如果两个字符串相同,它应该返回0!
bool validatePassword(char id[], string password) {
// cannot be the same as the id string
if(password.compare(id) == 0) {
cout << "password can not be as same as id\n";
return false;
}
return true;
}
答案 0 :(得分:4)
Matteo Italia在另一个回答中提到了评论。使用std :: string&#39; s运算符==像这样:
bool validatePassword(char id[], string password) {
return password == id;
}
这个函数真的没必要,因为你的调用者应该直接调用operator ==。
答案 1 :(得分:0)
您可以通过将id转换为字符串并与字符串进行比较来实现:
string idStr(id);
if (password == idStr){
}
或使用strcmp比较两个char数组:
if(strcmp (password.c_str(), id) == 0){
}
您必须使用方法c_str()
将字符串转换为char数组