C++ 字符串比较返回 0 但 bool 返回 false

标签 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(假)。

为什么会这样?

最佳答案

Using cout I notice that value returns an int that is zero. However, when I compare value to zero, it returns 1 (false).

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

换句话说,0 实际上等于 0

附言您可以将函数重写为 return _record == query

关于C++ 字符串比较返回 0 但 bool 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26721105/

相关文章:

c - 我希望我手动输入的字符串显示重复字符 "ma"的数量,但我被卡住了,我是 C 新手

python - 使用 Python 比较 2 个 excel 文件

c - 关于比较文件上的字符串的考试练习

c++ - 使用 SDL_MapRGBA 真的很慢。这是正常的吗?

c++ - 将 int 地址转换为 char 指针的正确方法

javascript - jquery:将[object Object]附加到字符串

java - String.equalsIgnoreCase 仅对第一个 switch case 返回 true

php - C++ map 查找性能与 PHP 数组查找性能

c++ - 无法从 'TCHAR [260]' 转换为 'std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t>>

java - JComboBox 空指针异常。需要从框中获取 Int 并将 int 设置为从框中选择的 int