使用关系运算符C++比较字符串



比较字符串时如何。。。

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将字符串转换为整数,然后比较整数。

最新更新