我想我的代码可以完全正常使用strcmp或只是==在C++中比较2个char数组.任何人都可以证明使用的原因strcmp而不是==;
WiS*_*GaN 12
strcmp比较实际C-string内容,而==在两个之间使用C-string是询问这两个char指针是否指向相同的位置.
如果我们有一些C-string定义如下:
char string_a[] = "foo";
char string_b[] = "foo";
char * string_c = string_a;
Run Code Online (Sandbox Code Playgroud)
strcmp(string_a, string_b) == 0会回来true,而string_a == string_b会回来false.只有在"比较" string_a和string_c使用时==才会返回true.
如果要比较两个的实际内容,C-string而不是它们是否只是彼此的别名,请使用strcmp.
对于附注:如果您使用的是C++代替C问题标签显示,那么您应该使用std::string.例如,
std::string string_d = "bar";
std::string string_e = "bar";
Run Code Online (Sandbox Code Playgroud)
然后string_d == string_e会回来true.string_d.compare(string_e)将返回0,这是C++版本strcmp.
| 归档时间: |
|
| 查看次数: |
5784 次 |
| 最近记录: |