我不知道如何形成这个问题,因为英语不是我的主要语言。 。 。
比较两个字符串的过程是什么?
例如,计算机如何在逻辑上比较两个字符串?
#include <iostream>
#include <string>
int main()
{
std::string s1 {"b"};
std::string s2 {"abc"};
if(s1 > s2)
{
std::cout << s1 << " > " << s2;
}
else std::cout << s2 << " > " << s1;
return 0;
}
输出:b > abc
计算机如何提出这种逻辑(即使它是正确的)。
我想象计算机逻辑将字符转换为整数然后按大小进行比较,这不是这里的情况,因为如果它是
b > abc
会被视为98 > 97 + 98 + 99
,这是不正确的。
答案 0 :(得分:3)
比较逻辑由字符串的char特征指定,std::string
为std::char_traits<char>::compare
,后者又指定&#34;字典比较&#34;。每个字符都根据其数值进行比较,数值由执行字符集的编码给出。在您的平台上,'b' > 'a'
为真,因此s2
的比较小于s1
。