string(50分)

  • 主题发起人 主题发起人 panjf
  • 开始时间 开始时间
P

panjf

Unregistered / Unconfirmed
GUEST, unregistred user!
我声明了这样一个字符串:
var
a: string[3];
用Length返回的却不是3,而是228,为什么?

var
a: string;
begin
SetLength(a,3);
...
end;
就可以了

 
你只是声明,没有赋值,如果一句
a:='aaa'
那么Length的结果就对了。
 
短字符是以前pascal用的
a[0]中代表字符串的长度
 
var
s:string[3];
begin
showmessage(inttostr(length(s)))
//得到0
end;
var
s:string[3];
begin
s:='aaa';
showmessage(inttostr(length(s)))
//得到3
end;
var
s:string[3];
begin
s:='aaaa';
showmessage(inttostr(length(s)))
//得到3
end;

不知道你是怎么回事,我是对的!
 
你查下object pascal语法手册就知道了,String实际上是一个结构,在声明时,不能使用
类似char(7)的方法来给定长度,只能用SetLength。String[8]代表这个字串中的一个字符。
length(a)返回的是一个不大于255的随机数,数值受具体环境决定。
 
同意Netameng,
同样情况下我是247
 
还是用SetLength吧,这样方便,好用
 
多人接受答案了。
 
后退
顶部