C ++ String Compare返回0但布尔值返回false

时间:2014-11-03 18:59:09

标签: c++ string compare

我想比较两个字符串,看它们是否相同,不相等,更大,更少等。我有以下代码:

std::string _record = "adam";
std::string query = "adam";
int value = _record.compare(query);
return value == 0;

返回的内容是false。使用cout我注意到value返回零int。但是,当我将value与零进行比较时,它返回1(假)。

为什么会这样?

2 个答案:

答案 0 :(得分:3)

  

使用cout我注意到该值返回零int。但是,当我将值与零进行比较时,它会返回1false)。

这是正确的,除了最后一位:bool(1)true,而不是false

换句话说,0确实等于0

P.S。您可以将函数重写为return _record == query

答案 1 :(得分:1)

您正在比较0到0并返回TRUE(1),因为0等于0