VS 2005 里string 的比较出问题

daixuefeng203 2008-11-28 11:15:05
if(imagename == DataList[i].name)

这句老出问题,其中imagename 和DataList[i].name都是string类型的
出错提示如下:
error C2678: 二进制“==”: 没有找到接受“std::string”类型的左操作数的运算符(或没有可接受的转换)
d:\program files\microsoft visual studio 8\vc\platformsdk\include\guiddef.h(192): 可能是“int operator ==(const GUID &,const GUID &)”
试图匹配参数列表“(std::string, std::string)”时

string类型不是可以直接比较是否相同的么?
...全文
162 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jinhao 2008-11-28
  • 打赏
  • 举报
回复
#include <string>
toadzw 2008-11-28
  • 打赏
  • 举报
回复
if(imagename.c_str() == DataList[i].name.c_str())
sagegz 2008-11-28
  • 打赏
  • 举报
回复
UP!
就呆在云上 2008-11-28
  • 打赏
  • 举报
回复
呵呵,你在这个调用函数之前添加一个东西就是了,也就是重载操作符:
bool operator==(const string &a, const string &b) {
return !(strcmp(a.c_str(), b.c_str()));
}


如果相等就返回真,哈哈
程序就不会有问题了
nullah 2008-11-28
  • 打赏
  • 举报
回复
会不会少了头文件
qqwx_1986 2008-11-28
  • 打赏
  • 举报
回复
不知道楼主到底咋整的...
tangshuiling 2008-11-28
  • 打赏
  • 举报
回复
按理说应该可以,是其他问题吧~~~要不用imagename.compare(DataList[i].name)试试!
robothn 2008-11-28
  • 打赏
  • 举报
回复
imagename 是否是一个 GUID
xhs_lh04 2008-11-28
  • 打赏
  • 举报
回复
if(imagename.Equals( DataList[i].name))
hai040 2008-11-28
  • 打赏
  • 举报
回复
感觉是没using std::string;
  • 打赏
  • 举报
回复
- -!

wcscmp()
strcmp()
  • 打赏
  • 举报
回复
- -!

wcscmp()
strcmp()
Mougou 2008-11-28
  • 打赏
  • 举报
回复
string类没有重载operator==操作符
lc19890326 2008-11-28
  • 打赏
  • 举报
回复
你贴出完整程序看看啊 感觉是少了#include<string>或者using namespace std
roadblossom 2008-11-28
  • 打赏
  • 举报
回复
up
wxc0077 2008-11-28
  • 打赏
  • 举报
回复
string 没有重载==
taodm 2008-11-28
  • 打赏
  • 举报
回复
VC6?没有#include <string>?没有using namespace std;?

64,282

社区成员

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

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