gpt4 book ai didi

c++ - strcmp() 可以在 C++ 中处理字符串吗?

转载 作者:太空狗 更新时间:2023-10-29 23:24:39 24 4
gpt4 key购买 nike

我有这行代码

if(strcmp(ob[i].getBrand(), ob[j].getBrand()) > 0)

我得到了这个错误

error C2664: 'strcmp' : cannot convert parameter 1 from 'std::string' to 'const char *'

这是否意味着 strcmp 不适用于字符串,而是必须将其转换为字符?

最佳答案

不要使用strcmp。使用与 strcmp 具有相同行为的 std::string::compare

if(ob[i].getBrand().compare(ob[j].getBrand()) > 0)

或者更好

if(ob[i].getBrand() > ob[j].getBrand())

通常,当您必须测试字符串不同的各种情况时,您应该使用 std::string::compare,例如

auto cmp = ob[i].getBrand().compare(ob[j].getBrand());

if(cmp == 0) ...
else if(cmp > 0) ...
else if(cmp < 0) ...

这样只需要对字符串进行一次比较操作

但是,在您的情况下,很明显您只需要在一个案例中使用比较结果(我真的假设,因为我不知道给定代码的上下文),然后 operator > 就足够了,并且在眼睛(大脑!)上更容易。

关于c++ - strcmp() 可以在 C++ 中处理字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25360218/

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