Kee*_*a S 3 c++ string compare
鉴于下面的一段 C++ 代码
cout<<("100">"035")<<"\n";
cout<<("100"<"035")<<"\n";
string str = "100";
cout<<str.compare("035");
Run Code Online (Sandbox Code Playgroud)
这段代码的输出是
0
1
1
Run Code Online (Sandbox Code Playgroud)
这意味着操作员的“100”<“035”但比较函数的“100”>“035”。这两者是否有任何已知的实现差异?
PS“100”>“035”肯定更有意义。
C-String 文字(例如"100")将它们自己比较为指针。
std::string 比较比较内容词典。
如果您想要一致的结果:
using namespace std::string_literals;
std::cout << ("100"s > "035"s)<<"\n";
std::cout << ("100"s < "035"s)<<"\n";
std::string str = "100"s;
std::cout << str.compare("035");
Run Code Online (Sandbox Code Playgroud)
"100"s是“等价于”的std::string("100")。