【发布时间】:2015-02-11 12:58:35
【问题描述】:
我是一个 c++ 新手(只是 oldschool c)。我儿子为此寻求帮助,我无法解释。如果他问我“我如何比较字符串”,我会告诉他使用 strcmp(),但这并不是让我感到困惑的地方。这是他的要求:
int main()
{
cout << ("A"< "Z");
}
将打印 1
int main()
{
cout << ("Z"< "A");
}
也会打印 1,但是
int main()
{
cout << ("Z"< "A");
cout << ("A"< "Z");
}
然后将打印 10。两个 cout 语句单独打印 1,但连续执行我得到不同的答案?
【问题讨论】:
-
不是你的问题,但你可以通过将任一文字转换为
std::string:std::cout << (std::string("A") < "Z"); -
仅供参考 cstrings 可以转换为 c++ 字符串,然后与典型的运算符进行比较。
std::string s1 = "A";等 -
或者从 C++14 开始只是
("A"s < "Z"s). -
寻找面试问题的人,请注意!
标签: c++ string-literals