对于字符串比较的讨论

jingsuxuyilq jingsuxuyilq 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
今天在写代码时(注是c语言,不是c++),一不小心用了“==”对比较字符串,花了1个多小时才发现这个错误,详见下面code:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
...
if(argv[1] == argv[2])
{
fprintf(stderr, "%s and %s are same", argv[1], argv[2]);
exit(1);
}
....
}

虽然用“argv[1] == argv[2]”这种表达是不对的,但为什么c编译器没有报错,而且得出的值为0,这一点让我很奇怪,有没有高手解释下
...全文

相关推荐

字符串比较

java比较两个字符串差异并标记出来,以html形式展现。

zyh_xf2017

用PHP中的 == 运算符进行字符串比较

最近在Greg Beaver’s的blog上发表的一篇新文章 comparing strings in PHP with the == operator 中提及了PHP的 == 运算符在对字符串进行比较时值得注意的问题。  在某些情况下,PHP会把类数值数据(如含有数字的字符串等)转换成数值处理,== 运算符就是其中之一。在使用 == 运算符对两个字符串进行松散比较时,PHP会把类数值的字符串转换为数值进行比较,下面的实验证实了这个结论:&lt;?phpvar_dump(’01’ == 1);?&gt;以上代码输出结果为:bool(true)  所以,在使用对字符串进行比较时,建议使用 === 运算符对字

weixin_38678796

比较s和t两个字符串

p79_2ti 设计strcmp(s,t)算法,实现两个字符串的比较

zhangjieyi123

javascript 两个字符串比较函数

比较两个字符串中不同的字符

weixin_38725625

C&C++字符串比较避坑[源码]

文章讨论了在C++中使用==运算符比较字符串时可能遇到的问题。当比较字符串字面量和const char*时,==实际上比较的是两个指针的地址,而非字符串内容,这会导致预期外的行为。作者通过一个具体例子展示了这一问题,并提供了两种解决方案:使用std::string类的==运算符重载,或者使用strcmp函数进行字符串内容比较。文章还引用了StackOverflow上的相关讨论作为参考,帮助读者更好地理解问题的根源和解决方法。

garlic
评论 14
收藏 已收藏
分享
返回顶部
jingsuxuyilq
C语言 70,039 成员 243,237 内容