字符串的补位问题 ( 积分: 20 )

  • 主题发起人 主题发起人 seeok
  • 开始时间 开始时间
S

seeok

Unregistered / Unconfirmed
GUEST, unregistred user!
假如说需要一个定长的字符串,譬如说是6位的,现在有一个stemp变量,值为'temp',那么要把它补成6位的,假如说补0,那么补ASCII表示的‘0’和补二进制表示的‘0’,有什么区别呢,这两种情况下stemp变量的值是多少呢?
 
假如说需要一个定长的字符串,譬如说是6位的,现在有一个stemp变量,值为'temp',那么要把它补成6位的,假如说补0,那么补ASCII表示的‘0’和补二进制表示的‘0’,有什么区别呢,这两种情况下stemp变量的值是多少呢?
 
怎么没有人来回答啊~~
 
(1):ASCII的0是空字符,即''
(2):二进制的0指的是位,而不是字符
一个AnsiChar是8位的,它的8位分别可以是0或1,不同的组合是不同的结果,
这个问题,你问的让人无法答
 
有没有人可以说的更详细点啊
 
估计是你分太少了没人愿意回答
如果补ASCII码的话就变成了'temp00',显示的时候就显示temp00
如果补二进制的'0',其实应该说成是十六进制的'0'
那就变成了'temp'#0#0,这样显示的时候只显示temp
 
二进制的0出现在字符串中,相当于说这个字符串到这里已经结束了,相当于#0。而加上一个ASCII的'0',是以可见字符的形式追加的。你可以试试:
var
stemp: string;
begin
stemp := 'temp';
stemp[3] := #0;
showmessage(stemp)
// 得到的结果是'te'
end;
 
嗯,回答已经挺详了.
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
909
DelphiTeacher的专栏
D
后退
顶部