Delphi 将字符串内容复制到字符数组
我想将字符串中的内容复制到char数组 我可以使用这个代码Delphi 将字符串内容复制到字符数组,delphi,delphi-2006,Delphi,Delphi 2006,我想将字符串中的内容复制到char数组 我可以使用这个代码StrLCopy(C,pChar(@S[1]),high(C)) 我目前正在使用Delphi2006。如果因为新版本中提供的Unicode支持而升级我的Delphi版本,会有任何问题吗 如果没有,此转换的代码是什么?在快速测试中,此功能有效: var ch: array[0..10] of Char; c: Char; x: Integer; st: string; begin s := 'Testing'; St
StrLCopy(C,pChar(@S[1]),high(C))代码>
我目前正在使用Delphi2006。如果因为新版本中提供的Unicode支持而升级我的Delphi版本,会有任何问题吗
如果没有,此转换的代码是什么?在快速测试中,此功能有效:
var
ch: array[0..10] of Char;
c: Char;
x: Integer;
st: string;
begin
s := 'Testing';
StrLCopy(PChar(@ch[0]), PChar(s), High(ch));
x := 100;
for c in ch do
begin
Canvas.TextOut(x, 100, c);
Inc(c, Canvas.TextWidth(c) + 3);
end;
end;
将字符串复制到数组中时,首选
这将适用于所有版本的Delphi,即使Unicode生效。C
和S
的字符类型应相同;不要试图使用该函数在Ansi和Unicode字符之间进行转换
但是StrLCopy
也可以。不过,您不需要有这么多指针代码。Delphi已经知道如何将字符串转换为PChar:
StrLCopy(C, PChar(S), High(C));
请告诉我这两种STrlCopy语句之间的区别。感谢您抽出时间。帮助中说:“警告:STrlCopy的ANSI版本已被弃用。请使用AnsiStrings单元。”这个答案是十多年前写的,当时该过程没有被弃用。如果您正在减少,那么将AnsiStrings单元添加到您的实现uses
子句中以停止它。出于好奇,你为什么选择评论我的答案而不是另一个,或者问题本身?谢谢你罗布花时间
StrLCopy(C, PChar(S), High(C));