有关字符串的取等问题,各位高手请帮忙,拜托!!!

ljljmgm 2002-08-06 04:23:30
char *str;
int usGainCode[2];
String S=MyList->Strings[i];
str=strtok(S.c_str(),": "); //电压范围
str=strtok(NULL,": ");
if(str=="0-5V")
{usGainCode[1]=4; Edit4->Text=IntToStr(usGainCode[1]); }
为什么不能使(str=="0-5V")中的等号得到满足,我通过断点调试,发现str的确为=="0-5V",可是大括号内的部分就是不执行,怎么回事呢???
...全文
56 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zahuifan 2002-08-06
  • 打赏
  • 举报
回复
应该使用 if( strcmp(str,"0-5V")==0 ){}
另外如楼上所说的,AnsiString 是一个非常好用的类,建议你仔细
读一下 cb 的帮助文档(将光标移动到 AnsiString 中间,再按 F1).
Bird1945 2002-08-06
  • 打赏
  • 举报
回复
看来,你对字符串的比较不是很明白.

用strcmp是标准的C语言函数.

用AnsiString(str) == "......"
是BCB中的方法.
wo心依然 2002-08-06
  • 打赏
  • 举报
回复
c_idler(闲人)说得有道理,既然用CB,建议直接用AnsiString,尽量避免用char*,否则有时会自找麻烦,切身体会啊!!!
wo心依然 2002-08-06
  • 打赏
  • 举报
回复
改为if(AnsiString(str)=="0-5V")即可
c_idler 2002-08-06
  • 打赏
  • 举报
回复
str可是char型的啊,不能用==符号的,转化为AnsiString就可以了.
或者可以用StrComp(str,"0-5V"),或者用strcmp(str,"0-5V"),记得要加头文件的:)
而且你的写法也有很大的隐患,你的str并没有分配空间,而c_str返回的就是一个临时指针,并不是永久保持的.

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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