比较字符串时如何。。。
string e = "11"
string f = "102"
string s = "8"
e > s - this statement is false
f > s - and this is also false
为什么这些说法是假的?当比较两个字符串时,规则是什么?
在C/C++中对字符串使用关系运算符只需比较字符串的内存地址。显然,"11"
和"8"
占用了两个不同的内存区域,所以这可能是错误的,除非存储"11"
的地址恰好存储在大于"8"
的地址中,但这是随机的。
请记住,您可以使用string::compare
,但是,它会比较字符串的ASCII代码。由于"1"
(ASCII代码49(小于"8"
(ASCII代码56(,因此它仍然为false。您需要使用stoi
将字符串转换为整数,然后比较整数。