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

时间:2010-12-14 14:17:14

标签: delphi delphi-2006

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

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

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

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

2 个答案:

答案 0 :(得分:16)

当您将字符串复制到数组中时,请更喜欢StrPLCopy

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

即使Unicode生效,它也适用于所有版本的Delphi。 CS的字符类型应相同;不要尝试使用该函数在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;