动态数组不能与字符串相互赋值

zghncyjjwang 2006-12-12 05:40:40
各位老师好。
我碰到了如下问题。
动态数组不能与字符串相互赋值。程序如下:
procedure TForm1.Button1Click(Sender: TObject);
var
x1:string; //字符串
x2:array of char; // 动态数组
begin
x1:='abc123';
x2:=x1; //出现错误: Incompatible types: 'String' and 'dynamic array'
//为什么会出现上述错误?请各位老师指点为。
//怎样才能实现动态数组与字符串相互赋值?
end;

...全文
359 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
halfdream 2006-12-31
  • 打赏
  • 举报
回复
x1:='abc123';
x2:=x1;

SetLength(x2,length(x1));
Move(pchar(x1)^,pchar(x2)^,length(x2));
lxj_com2006 2006-12-30
  • 打赏
  • 举报
回复

测试通过!
lxj_com2006 2006-12-30
  • 打赏
  • 举报
回复

刚刚试了,要这样:

1.动态数据要setlength,
2.String 到Char数组赋值,用函数StrPCOPY

x1:='abc123';
x2:=x1;

SetLength(x2,8);
StrPCopy(@x2,PChar(x1)); //这里,要取指针地址 x1 转换为PChar
lihuasoft 2006-12-30
  • 打赏
  • 举报
回复
do2008 在一楼和四楼所说的,就是最正统的方案
lihuasoft 2006-12-30
  • 打赏
  • 举报
回复
还在研究? 一楼不是已经给出正确答案了吗? 呵呵
lxj_com2006 2006-12-30
  • 打赏
  • 举报
回复
补充一下:

wywry(Wyatt) ( )


var
x1:string;
x2:array of char;
i:Integer;
begin
x1:='1234';
SetLength(X2,Length(X1));
for i:=Low(X2) to High(X2) do
begin
if X1[i+1]=#0 then Break;//结束符,否则X2 Length(X1)之后还有字符串
X2[i]:=X1[i+1];
end;
end;



winxkm 2006-12-30
  • 打赏
  • 举报
回复
呵呵,不明白,string本身就是一个动态的字符数组,只不过下标是从1开始的,为什么还要用数组呢? 不过 楼上是正解!
bamfk10231023 2006-12-29
  • 打赏
  • 举报
回复
StrPCopy
do2008 2006-12-12
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
x1: string; //字符串
x2: array of char; // 动态数组
begin
x1:='abc123';
SetLength(x2,8);
StrPCopy(PChar(x2),x1);

ShowMessage(string(x2));
end;
zghncyjjwang 2006-12-12
  • 打赏
  • 举报
回复
我刚试了试,不行。
wywry 2006-12-12
  • 打赏
  • 举报
回复
var
x1:string;
x2:array of char;
i:Integer;
begin
x1:='1234';
SetLength(X2,Length(X1));
for i:=Low(X2) to High(X2) do X2[i]:=X1[i+1];
end;
do2008 2006-12-12
  • 打赏
  • 举报
回复
1.动态数据要setlength,
2.String 到Char数组赋值,用函数StrPCOPY

x1:='abc123';
x2:=x1;

SetLength(x2,8);
StrPCopy(x2,x1);
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统中变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整流程,突出展示了MATLAB/Simulink在电力设备建模与教学科研中的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电流、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文中提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。

5,943

社区成员

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

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