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

前端之家收集整理的这篇文章主要介绍了为什么在C中使用strcmp而不是==?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想我的代码可以完全正常使用strcmp或简单地在C中使用==来比较2个char数组.任何人都可以证明使用strcmp而不是==的原因;

解决方法

strcmp比较实际的C字符串内容,而在两个C字符串之间使用==询问这两个字符串指针是否指向相同的位置.

如果我们有一些C字符串定义如下:

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_a和string_c时才会返回true.

如果要比较两个C字符串的实际内容,而不是它们是否只是彼此的别名,请使用strcmp.

旁注:如果您使用C而不是C作为问题标签显示,那么您应该使用std :: string.例如,

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

然后string_d == string_e将返回true. string_d.compare(string_e)将返回0,这是strcmp的C版本.

原文链接:https://www.f2er.com/c/115717.html

猜你在找的C&C++相关文章