字符串与数组之间的操作问题

aldous 2003-09-11 12:17:30
a:array[0..9] of Char;
b:string;

for i:=0 to length(b)-1 do
begin
a[i]:=b[i+1];
end;
可以给数组赋值,但是:
for i:=0 to length(a)-1 do
begin
b[i+1]:=a[i];
end;
就会报错啊!
...全文
27 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
linweifeng 2003-09-11
  • 打赏
  • 举报
回复
要给b设置内存大小,用这个setstring函数
chl_ccssddnn 2003-09-11
  • 打赏
  • 举报
回复
b:='';
for i:=0 to length(a)-1 do
begin
//b[i]:=a[i];
b:=b+a[i];
end;
showmessage(b);
显然,编译器无法把char写入string,因此给你修改一下,这样就可以按位代替了。
hiflower 2003-09-11
  • 打赏
  • 举报
回复
因为 string 类型是生存期自动管理的,在使用它之前,它是没有分配空间的。

为了让它有空间,可以这样:

SetLength(b,High(a)-Low(a)+1);

b:=StringOfChar(' ',High(a)-Low(a)+1);

或用楼上的方法
shmilyjiujiu 2003-09-11
  • 打赏
  • 举报
回复
b:=b+a[i]楼主试试

5,388

社区成员

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

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