首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

判断两个字符串相等为啥不能用“==”

2012-09-13 
判断两个字符串相等为什么不能用“”就是我要对两个const char*的字符串进行判断是都相等,比如const char*

判断两个字符串相等为什么不能用“==”
就是我要对两个const char*的字符串进行判断是都相等,
比如const char* a, const char* b,
于是我就
if(a==b)
{.....}
发现不是我想要的结果。

后来改成
if(strcmp(a,b)==0)
{....}
发现这样才对了。

请问这是为什么,请假一下。
难道方法一比较的两个字符串的内存地址?

[解决办法]
如你所说的吧,那是两个指针啊。
[解决办法]
==是比较a b的值
strcmp是比较 a b指向的内容。
[解决办法]
==只能比较变量的值。
而2个字符串//你能用什么东西表示,其实只能用该字符串的首地址指针表示。

也就是说,你的问题是为何不能通过2个字符串的首地址值来判断2个字符串是否一样?
直接比较,肯定不行。
但是从首地址开始逐个遍历字符比较是可以的,也就是strcmp.
[解决办法]
if(a==b),这里的a,b已经代表了字符串的首地址。。。不是字符串里内容,你比较首地址是否相等有什么用呢。
strcmp()函数才是比较字符串里内容。
[解决办法]
不是不可以~ 
重载操作符就可以了~
[解决办法]
字符串是指针,它的内容是以0结尾的字符数组。你想比较两个字符串的时候要知道:两个字符串是否在不同的地址。如果在不同的地址,要比较内容是否相同你可以用strcmp函数或者其他方法,如果要判断是否是相同地址,可以用==的。
[解决办法]
直接比是比地址,不是比字符串

热点排行