为什么C++Builder 中AnsiString的Lengthf方法返回 1。(50分)

  • 主题发起人 主题发起人 cnma
  • 开始时间 开始时间
C

cnma

Unregistered / Unconfirmed
GUEST, unregistred user!
某过程定义了AnsiString的变量X,进行如下操作,结果令我不解。
{
AnsiString X;
X="";
//?x.Length()
}
x.Length()=1,明明是空字符串,我想结果应该是0,怎么会得到1呢?在Delphi中,对空字符串使用Length函数
结果就是0。
请大家说说
 
占用的空间应该是 1 ,长度包含终止符 0
 
同意楼上的,string还包含'/0'.
支持C++
 
我测试了一下,结果是0啊。
》》X="";
》》//?x.Length() //这里怎么是小写的x,c里是区分大小写的哦,你自己有没有搞错?
 
同意chenxz,测试结果一样是0,大小写区分。
 
嘻,不好意思[:I].
没经测试,就说错了,应该是0,
同意chenxz.
re:发贴者:
要注意大小写,我估计程序中小写的x你在程序中定义过,但没赋值,所以程序能正常
运行,没经赋值的变量中的值是没有意义的。
 
To all
更正一下
原x.Length()改为X.Length().
请大家再试一下。
 
好端端的0,哪来的1啊?
 
哈哈,楼主测试大家呢吧 ?
 
呵呵,有意思。
有时还是要自己做一做才知道。
 
我在BCB6.0中,测试出来是0![8D]
 
结果绝对是0,因为'/0'只是字符串的结束标志。在内存分配上的确是占用一个字符的
空间。但Length()只会返回字符的实际长度.
 
绝对是0,STRING不含结束标志
 

Similar threads

回复
0
查看
848
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部