+ -
当前位置:首页 → 问答吧 → 问一个比较基础的问题。在字符串操作中,==,strcmp,equal对于判断字符的相等各有什么不同的作用?

问一个比较基础的问题。在字符串操作中,==,strcmp,equal对于判断字符的相等各有什么不同的作用?

时间:2011-12-26

来源:互联网

或者说用法是怎样,什么时候该用哪个?请哪位大侠给小弟我指点迷津一下。

作者: guyancanyun   发布时间: 2011-12-26

这个要看比较什么了。
估计你是想要比较字符串吧。
举个例子吧。

char p1[] = "hello";
char p2[] = "hi";

if (p1 == p2){} //不相等。这样只是比较指针的地址
if (*p1 == *p2){} //相等。这个是比较首地址的值。凑巧,这两个的首地址都是'h'

strcmp(p1,p2); //这个不等,这个是比较两串字符串。一个是"hello","hi"。肯定不一样

简言之
== 只能比较一些值。也可以比较一些结构体的是否相等。不能比较指针指向的内容。
strcmp() 可以比较字符串类指针的内容。

equal 这个小弟才疏学浅,就不知道了。



作者: cobra_chen   发布时间: 2011-12-26

第一个用于类类型比较,string类重载了这个,第二个是C语言比较字符串用的,遇空字符结束。第三个是Stl标准算法库里的模版函数,用来比较两个区间是否相等,要指名第一个区间的结束点

作者: mingliang1212   发布时间: 2011-12-26