在C++参考手册中的
这个函数有两个参数
string::compare
中,有以下重载:int compare ( size_t pos1, size_t n1, const string& str, size_t pos2, size_t n2 ) const;
这个函数有两个参数
n1
和n2
,在我看来它们应该始终相等,否则函数将返回一个等于true
的int
(string::compare
返回值为0(false)表示字符串相等)。这正确吗?如果不是,请提供一个例子,展示一个比较不相等长度(n1 != n2
)时会返回false
的具体情况。
谢谢!
int
可以很容易地转换为bool
,这就是你可以使用if
与strcmp
等的方法。 - rubenvbstrcmp
一样,compare
不会返回布尔值,而是返回一个整数(就像它所说的那样)。对于相等的字符串,compare
返回一个整数值为0,在布尔上下文中评估为false
。 - eq-a.compare(b)
进行测试。 - rubenvba == b
清晰,因此我认为当您真正关心排序时,最好使用compare
。 - Matthieu M.string::substring
和operator==
代替string::compare
吗? - rubenvb