将字符串内容复制到char数组

Bha*_*rat 14 delphi delphi-2006

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

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

我目前正在使用Delphi 2006.如果因为新版本中提供的Unicode支持而升级我的Delphi版本会有任何问题吗?

如果没有,这个转换的代码是什么?

Rob*_*edy 16

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

StrPLCopy(C, S, High(C));
Run Code Online (Sandbox Code Playgroud)

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

StrLCopy也很好.但是,您不需要拥有如此多的指针代码.Delphi已经知道如何将字符串转换为PChar:

StrLCopy(C, PChar(S), High(C));
Run Code Online (Sandbox Code Playgroud)


Ken*_*ite 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;
Run Code Online (Sandbox Code Playgroud)