在我正在阅读的C ++教科书中(if (str1 > str2)
,然后输入一些代码。
有人可以向我解释“大于”和“小于”运算符如何与声明如下的字符串结合使用:
#include <string>
.
.
.
string str1 = "foo";
string str2 = "bar";
我曾尝试在Stack Overflow和其他服务器上搜索此答案,但无济于事。
[字典顺序或字典顺序(也称为 如词汇顺序,字典顺序,字母顺序或 词典产品)是单词的概括 根据他们的字母顺序按字母顺序排列 组件字母。
您也可以使用.compare()
方法比较两个字符串。它将返回以下值-
0:他们比较相等小于0:第一个不等于0的字符的值 在比较的字符串或所有比较的字符中匹配项较低 匹配,但比较的字符串较短。
大于0:不包含第一个字符的值 在比较的字符串或所有比较的字符中,match更大 匹配,但比较的字符串更长。
相反,关系运算符(如>
,<
,==
)将仅返回布尔值true或false。在表达式str1 < str2
中,如果str1中的第一个不匹配字符小于str2中的相应字符,则str1将小于str2。如果所有字符都匹配,则str1
仅在其长度较短时才小于str2
。
这里是算法:要确定a
是否小于b
,您需要找到最小的i
,以便a[i] != b[i]
,如果是(unsigned char)a[i] < (unsigned char)b[i]
,则需要a < b
,否则为a > b
。
如果没有这样的i
,则为a == b
。
如果a
是b
的前缀,则a < b
(这是根据上面的算法得出的,如果您认为字符串末尾的额外\0
是字符串的一部分)] >