我有两个变量:
char charTime[] = "TIME";
char buf[] = "SOMETHINGELSE";
Run Code Online (Sandbox Code Playgroud)
我想检查这两个是否相等......使用charTime == buf不起作用.
我应该使用什么,有人可以解释为什么使用==不起作用?
这个行为在C和C++中会有所不同吗?
Joh*_*itb 20
char charTime[] = "TIME"; char buf[] = "SOMETHINGELSE";
Run Code Online (Sandbox Code Playgroud)
C++和C(删除std::C):
bool equal = (std::strcmp(charTime, buf) == 0);
Run Code Online (Sandbox Code Playgroud)
但真正的C++方式:
std::string charTime = "TIME", buf = "SOMETHINGELSE";
bool equal = (charTime == buf);
Run Code Online (Sandbox Code Playgroud)
使用==不起作用,因为它试图比较每个数组的第一个字符的地址(显然,它们不相等).它不会比较两个数组的内容.
| 归档时间: |
|
| 查看次数: |
28097 次 |
| 最近记录: |