如果字符串是数字并且具有相同的位数,请告诉我小于、大于运算符如何用于字符串。这些运算符究竟是如何工作的?
例如,对于下面的比较-
cout<<("3" > "5")<<endl;
cout<<("31" > "25")<<endl;
cout<<("35" > "35")<<endl;
cout<<("38" > "85")<<endl;
cout<<("53" > "55")<<endl;
cout<<("36" > "35")<<endl;
cout<<("53" > "54")<<endl;
我从 CodeBlocks 得到的输出是-
0
0
0
0
0
0
0
最佳答案
您的代码的行为未定义。
为了比较,您输入的 const char[]
文字会分解为 const char*
指针。
并且指针比较运算符的行为仅在指针是同一数组的一部分时才定义;而你的不是。
如果你用 s 作为后缀,例如
"3"s
然后 C++14 以后会将其视为 std::string 并执行词法比较。
关于c++ - 如果字符串是数字,字符串的比较运算符如何在 C++ 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47912067/