如何比较两个字符串?

时间:2017-03-25 18:26:06

标签: c++ string

我不知道如何形成这个问题,因为英语不是我的主要语言。 。 。

比较两个字符串的过程是什么?

例如,计算机如何在逻辑上比较两个字符串?

#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,这是不正确的。

1 个答案:

答案 0 :(得分:3)

比较逻辑由字符串的char特征指定,std::stringstd::char_traits<char>::compare,后者又指定&#34;字典比较&#34;。每个字符都根据其数值进行比较,数值由执行字符集的编码给出。在您的平台上,'b' > 'a'为真,因此s2的比较小于s1