array of char赋值给string的问题

simonvc 2011-06-29 02:48:19
var
a: array[1..10] of char;
b: string;
c: string;
i: integer;
begin
b := 'test';
for i := 1 to 10 do
a[i] := b[i];
c := a;
showmessage(quotedstr(c)); //我发现 c 的长度是十位, 也就是说把test赋给a后, 剩下的六位也赋给c了, 如何解决 ?
end;

其中一种办法就是:
for i := 1 to 10 do
begin
if ord(a[i]) <> 0 then
b[i] := a[i];
end;

请问大家还有其他办法?
...全文
268 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
simonvc 2011-07-01
  • 打赏
  • 举报
回复
我自己已经搞定: c := StrPas(@a);
zhaodog 2011-06-30
  • 打赏
  • 举报
回复
b := 'test';
b的长度=4 ,你为什么用b【10】,超出范围
likeyrain 2011-06-30
  • 打赏
  • 举报
回复
想知道后面6位是什么内容?是空不?
sforiz 2011-06-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhaodog 的回复:]
b := 'test';
b的长度=4 ,你为什么用b【10】,超出范围
[/Quote]

居然没有报错?
babydog01 2011-06-29
  • 打赏
  • 举报
回复
粗心大意,以后一定要仔细认真哦.
bdmh 2011-06-29
  • 打赏
  • 举报
回复
什么乱七八糟的,你a是10位,c=a,那c不是10位是几位
天涯倦客 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 oraclers 的回复:]

為什麼不直接就 c := b;
[/Quote]

我也这么想的。。
Oraclers 2011-06-29
  • 打赏
  • 举报
回复
為什麼不直接就 c := b;
山东蓝鸟贵薪 2011-06-29
  • 打赏
  • 举报
回复
什么错误信息呀>>>>>>>

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧