gpt4 book ai didi

c++ - 为什么在 C++ 中使用 strcmp 而不是 ==?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:08 24 4
gpt4 key购买 nike

我想知道我的代码在 C++ 中使用 strcmp 或简单地使用 == 来比较 2 个字符数组时是否工作得很好。任何人都可以证明使用 strcmp 而不是 == 的原因吗?

最佳答案

strcmp比较实际的C-string内容,而在两个C-string之间使用==是询问这两个 char 指针是否指向相同的位置。

如果我们有一些 C-string 定义如下:

char string_a[] = "foo";
char string_b[] = "foo";
char * string_c = string_a;

strcmp(string_a, string_b) == 0 将返回 true,而 string_a == string_b 将返回 false。只有当使用==“比较”string_astring_c 时才会返回true

如果你想比较两个C-string的实际内容而不是它们是否只是彼此的别名,使用strcmp

附带说明:如果您使用 C++ 而不是 C,如您的问题标签所示,那么您应该使用 std::string。例如,

std::string string_d = "bar";
std::string string_e = "bar";

然后 string_d == string_e 将返回 truestring_d.compare(string_e) 将返回 0,这是 strcmpC++ 版本。

关于c++ - 为什么在 C++ 中使用 strcmp 而不是 ==?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22572987/

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