c++ - 比较 C 中 char[] 的相等性

标签 c++ c equality

我有两个变量:

char charTime[] = "TIME";
char buf[] = "SOMETHINGELSE";

我想检查这两个是否相等...使用 charTime == buf 不起作用。

我应该使用什么,有人可以解释为什么使用 == 不起作用吗?

此操作在 C 和 C++ 中会有所不同吗?

最佳答案

char charTime[] = "TIME"; char buf[] = "SOMETHINGELSE";

C++C(删除 C 的 std::):

bool equal = (std::strcmp(charTime, buf) == 0);

但真正的 C++ 方式:

std::string charTime = "TIME", buf = "SOMETHINGELSE";
bool equal = (charTime == buf);

使用 == 不起作用,因为它试图比较每个数组的第一个字符的地址(显然,它们不相等)。它不会比较两个数组的内容。

关于c++ - 比较 C 中 char[] 的相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2440420/

相关文章:

即使使用 Component.onCompleted,在页面加载之前也会调用 C++ 函数

c++ - windows C++ 多线程

具有 16 位灰度图像的 cvSobel

c - c 中 main 的程序参数 - ./dev --print

c - If 和等式语句

javascript - 为什么 new String ('hello' ) === new String ('hello' ) 的计算结果为 False?

c++ - 宏和多行注释

c++ - C++ 中指向对象和后代的指针

c - 从数组读取段错误(可能与 malloc/realloc 相关)

scala - 比较 Seq 和 Array 的不同行为