关于字符指针和字符串的问题

wylove 2005-10-27 04:57:42
#include <string>
#include <iostream>
using namespace std;

void main()
{
string c = "hello";
char *a = new char[c.length()];
strcpy( a, c.c_str() );
if ( a == "hello" )//为什么 a!="hello",我也知道用strcmp比较可以,但是“==”是怎么比较?
cout << "hello";
};
...全文
208 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wylove 2005-11-01
  • 打赏
  • 举报
回复
#include <string>
#include <iostream>
using namespace std;

void main()
{
char *a = "hello";
if ( a == "hello" )//为什么相等?
cout << "hello";
};
aasxn 2005-10-29
  • 打赏
  • 举报
回复
int main()
{
string str="hello";
char *cchr = new char[str.length()];
strcpy(cchr, str.c_str());
if (strcmp(cchr, str.c_str()) == 0) {
cout<<cchr<<endl;
};
}
yingzhao1121 2005-10-29
  • 打赏
  • 举报
回复
char *a = new char[c.length()];
strcpy( a, c.c_str() );
这是什么意思
i_noname 2005-10-27
  • 打赏
  • 举报
回复
a == "hello"
比较指针a指向的地址和"hello"字符串的储存地址是否一致.
tesling 2005-10-27
  • 打赏
  • 举报
回复
char是简单类型,它的==类型只是简单的相等比较

if ( a == "hello" ),a只是一个char型指针,即使"=="在char中被重载支持你的这这种比较,a 也不能调用吧,a 只是指针。

如果==没有被重载,大约是这样的
bool operator == (const T& left,const T& right)
{return !(left-right)}

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧