关于string的用法(100)

H

huj1012

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi中string是以什么作为结尾的呢?var ssa,ss:String
len:Integer;begin ss:=StringOfChar(#0,512)
ss[10]:=char(0)
len := Length(ss)
ssa := Format('%d',[len])
ssa:=ss;end;以#0填充一个串,输出长度为512,而不是零。delphi中#0 是等价于 数0,在c中是作为结束符的。
 
H

hs-kill

Unregistered / Unconfirmed
GUEST, unregistred user!
string没有结尾符,在string头有4个字节内存存放其长度,所以string字符串中间可以包含#0#0可不是0,仍然是一个字符而已把string转换成pchar的时候会只截取到第一个#0的位置,如果没有#0就是取所有字符并在后面自动加#0你可以自己试试var pc:pchar
ss:string;begin ss:='aaa'+#0+'bbb'
pc:=pchar(ss)
caption:=pc
{这里设断点看pc和str的值,别把str显示出来看,那样只能看到aaa}end;
 

地质灾害

Unregistered / Unconfirmed
GUEST, unregistred user!
所有string的最后都有一个#0。无论转不转换都是如此。
 

冰力不足

Unregistered / Unconfirmed
GUEST, unregistred user!
最后空不空就是pchar 与string 的区别var s:string
s:='1234'#0#0'34'
ShowMessage(IntToStr(Length(s)));// 显示 8 ShowMessage(IntToStr(StrLen(PChar(s))))
//显示 4
 
H

huj1012

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢大家,明白了。
 

Similar threads

顶部