我想将字符串中的内容复制到 char 数组中。
我可以使用此代码吗StrLCopy(C, pChar(@S[1]), high(C));
我目前使用的是 Delphi 2006。如果我升级我的 Delphi 版本,因为新版本提供了 Unicode 支持,会有什么问题吗?
如果不是,那么此转换的代码是什么?
我想将字符串中的内容复制到 char 数组中。
我可以使用此代码吗StrLCopy(C, pChar(@S[1]), high(C));
我目前使用的是 Delphi 2006。如果我升级我的 Delphi 版本,因为新版本提供了 Unicode 支持,会有什么问题吗?
如果不是,那么此转换的代码是什么?
当您将字符串复制到数组中时,首选StrPLCopy
.
StrPLCopy(C, S, High(C));
这将适用于所有版本的 Delphi,即使 Unicode 有效。C
和的字符类型S
应该相同;不要尝试使用该函数在 Ansi 和 Unicode 字符之间进行转换。
不过StrLCopy
也好。不过,您不需要有这么多的指针代码。Delphi 已经知道如何将字符串转换为 PChar:
StrLCopy(C, PChar(S), High(C));
这在快速测试中有效:
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;