15

我想将字符串中的内容复制到 char 数组中。

我可以使用此代码吗StrLCopy(C, pChar(@S[1]), high(C));

我目前使用的是 Delphi 2006。如果我升级我的 Delphi 版本,因为新版本提供了 Unicode 支持,会有什么问题吗?

如果不是,那么此转换的代码是什么?

4

2 回答 2

17

当您将字符串复制到数组中时,首选StrPLCopy.

StrPLCopy(C, S, High(C));

这将适用于所有版本的 Delphi,即使 Unicode 有效。C和的字符类型S应该相同;不要尝试使用该函数在 Ansi 和 Unicode 字符之间进行转换。

不过StrLCopy也好。不过,您不需要有这么多的指针代码。Delphi 已经知道如何将字符串转换为 PChar:

StrLCopy(C, PChar(S), High(C));
于 2010-12-14T15:49:47.130 回答
7

这在快速测试中有效:

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;
于 2010-12-14T14:55:48.913 回答