码迷,mamicode.com
首页 > Windows程序 > 详细

Delphi XE里的StrPas要注意哦(要让StrPas知道哪里是字符串结束)

时间:2017-01-13 08:05:15      阅读:440      评论:0      收藏:0      [点我收藏+]

标签:form   长度   cli   for   htm   hive   估计   没有   var   

废话不多说了,直接上例子解说:

 

procedure TForm1.Button1Click(Sender: TObject);
var
  aa: array[0..1]of AnsiChar;
  bb1: string;
begin
  aa[0] := AnsiChar(‘1‘);
  aa[1] := AnsiChar(‘2‘);

  bb1 := StrPas(aa);
  ShowMessage(bb1);    //这里显示不正确
end;

 

 

procedure TForm1.Button1Click(Sender: TObject);
var
  aa: array[0..2]of AnsiChar;
  bb1: string;
begin
  aa[0] := AnsiChar(‘1‘);
  aa[1] := AnsiChar(‘2‘);

  bb1 := StrPas(aa);
  ShowMessage(bb1);   //这就正确了
end;

 

为什么呢??  没时间深入研究了,估计是StrPas的Bug。

 

不是bug吧 这个字符串要有结束符吧
不然你写个StrPas看看,没有结束符,咋判断字符串长度?!

类似Obj-C:
char xx[2];
xx[0] = ‘0‘;
xx[1] = ‘1‘;
[NSString stringWithUTF8String:xx];
这样你是获得不到正确结果的,要下面这样
char xx[3];
xx[0] = ‘0‘;
xx[1] = ‘1‘;
xx[2] = ‘\0‘;
[NSString stringWithUTF8String:xx];

 

http://www.cnblogs.com/AnyDelphi/archive/2011/10/15/2212755.html

Delphi XE里的StrPas要注意哦(要让StrPas知道哪里是字符串结束)

标签:form   长度   cli   for   htm   hive   估计   没有   var   

原文地址:http://www.cnblogs.com/findumars/p/6280440.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!