我有两个变量:

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

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

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

这个 Action 在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);

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

09-29 23:51