"和 "<"运算符如何用于字符串比较?-6ren"> "和 "<"运算符如何用于字符串比较?-在我正在阅读的 C++ 教科书(Bjarne Stroustrup 的使用 C++ 编程、原理和实践)中,有许多代码片段实例,其中比较字符串如下:if (str1 > str2) 然后是一些代码。 有-6ren">
gpt4 book ai didi

c++ - ">"和 "<"运算符如何用于字符串比较?

转载 作者:行者123 更新时间:2023-12-01 14:35:51 24 4
gpt4 key购买 nike

在我正在阅读的 C++ 教科书(Bjarne Stroustrup 的使用 C++ 编程、原理和实践)中,有许多代码片段实例,其中比较字符串如下:if (str1 > str2) 然后是一些代码。

有人可以向我解释“大于”和“小于”运算符如何与声明如下的字符串一起工作吗:

#include <string>
.
.
.
string str1 = "foo";
string str2 = "bar";

我尝试在 Stack Overflow 和其他网站上搜索此答案,但无济于事。

最佳答案

字符串按字典顺序进行比较。一个字符在字典序上大于其他字符串中对应字符的字符串将被视为更大的字符串。这被称为 lexicographical comparison .

The lexicographic or lexicographical order (also known as lexical order, dictionary order, alphabetical order or lexicographic(al) product) is a generalization of the way words are alphabetically ordered based on the alphabetical order of their component letters.

您可以使用 .compare()方法以及比较两个字符串。它将返回以下值 -

0 : They compare equal

Less than 0 : Either the value of the first character that does not match is lower in the compared string, or all compared characters match but the compared string is shorter.

more than 0 : Either the value of the first character that does not match is greater in the compared string, or all compared characters match but the compared string is longer.

相反,关系运算符(如 ><==)将仅返回 bool 值 true 或 false。在表达式 str1 < str2 中,如果 str1 中的第一个不匹配字符小于 str2 中的相应字符,则 str1 将小于 str2。如果所有字符匹配,str1将小于 str2只有当它的长度更短时。

关于c++ - ">"和 "<"运算符如何用于字符串比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62245290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com