gpt4 book ai didi

c++ - 按字典顺序比较字符串

转载 作者:行者123 更新时间:2023-12-02 10:28:18 26 4
gpt4 key购买 nike

我以为如果我使用c++中的“>”和“<”之类的运算符来比较字符串,这些将按字典顺序对它们进行比较,那么问题是,这有时仅在我的计算机上有效。
例如

if("aa" > "bz") cout<<"Yes";

这将不打印任何内容,这就是我需要的,但是如果我键入
if("aa" > "bzaa") cout<<"Yes";

这将显示"is",为什么会发生这种情况?还是我应该使用其他方法来按字典顺序比较字符串?

最佳答案

这样比较std::string -s可以使工作。但是,您正在比较字符串文字。要进行比较,您可以使用它们初始化std::string或使用strcmp:

if(std::string("aa") > std::string("bz")) cout<<"Yes";
这是解决该问题的c++样式。
或者:
if(strcmp("aa", "bz") > 0) cout<<"Yes";
编辑(感谢Konrad Rudolph的评论):实际上,在第一个版本中,只有一个操作数应该显式转换,因此:
if(std::string("aa") > "bz") cout<<"Yes";
将再次按预期工作。
编辑(感谢churill的评论):自c++ 14起,您可以使用字符串文字:
if("aa"s > "bz") cout<<"Yes";

关于c++ - 按字典顺序比较字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63352452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com