奇怪的AnsiString类型??????请

gloom 2001-07-19 05:01:47
定义一个AnsiString类型EStr,从一个TEdit中接受数据;
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if(Edit1->Text==NULL) return;
EStr=Edit1->Text;
Label1->Caption=EStr;
}
如果第一个字符输入'0'则if判断式为真值,为什么?
难道"0"==NULL???
但接着输入一个'0'则不会有问题,Label1显示为"00";
哪位大侠能解释一下吗?
...全文
118 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pyp 2001-07-20
  • 打赏
  • 举报
回复
hh
gloom 2001-07-19
  • 打赏
  • 举报
回复
谢了,可只有5分,该给谁?
wjzhuang 2001-07-19
  • 打赏
  • 举报
回复
宁吃飞禽二两,不吃走兽一斤!
至理名言呀~~~~~~
火鸟兄,你危险了~~~~~~~

Wingsun 2001-07-19
  • 打赏
  • 举报
回复
哦,我知道了,因为在系统中NULL是int的0,而AnsiString在和int作比较的时候会直接将int转换成AnsiString,所以,"0"==AnsiString(NULL)了。
所以你的判断应该是:
if(Edit1.Text=="")
而且在这儿Text不是一个指针,当然你不能将它和NULL比较了。
wjzhuang 2001-07-19
  • 打赏
  • 举报
回复
哇~~~~~~~~~~~~
不会是想吃程序猪的肉吧? ^0^
火鸟兄,程序猪的肉不好吃的,因为他三年没洗澡了~~~~~~~~~

路人丁 2001-07-19
  • 打赏
  • 举报
回复
宁吃飞禽二两,不吃走兽一斤!我要吃!
醉里挑灯看剑--笨笨的程序猪 正确!
火鸟33 2001-07-19
  • 打赏
  • 举报
回复
我要吃猪肉
wjzhuang 2001-07-19
  • 打赏
  • 举报
回复
是的,"0"==NULL
要这样判断
if(Edit1->Text=="") return;
AnsiString EStr=Edit1->Text;
Label1->Caption=EStr;
XioGua 2001-07-19
  • 打赏
  • 举报
回复
改成这样就完了

void __fastcall TForm1::Edit1Change(TObject *Sender)
{
if(Edit1->Text.isEmpty) return;
EStr=Edit1->Text;
Label1->Caption=EStr;
}


肚子好饿... ...

&_*

13,825

社区成员

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

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