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