使用空格(#32)初始化char数组非空(#0)

时间:2014-06-28 12:18:50

标签: delphi

我使用delphi 2010.我需要用空格填充char数组而不是空值。我使用下面的代码不起作用。

procedure TForm1.FormCreate(Sender: TObject);
var
  aCharArray: array[0..9] of Char;
begin
  FillChar(aCharArray, sizeof(aCharArray), #32); // doesn't work
  FillChar(aCharArray, sizeof(aCharArray), ' '); // doesn't work

  Caption := aCharArray;
end;

标题印有奇怪的十字架。在一系列的ansichar中运作良好。

请让我知道原因和解决方案。

感谢。

1 个答案:

答案 0 :(得分:10)

FillChar在Unicode Delphi中错误命名。它应该真正命名为FillAnsiChar。因此,您要使用序号为$2020的UTF-16字符填充字符串,即U+2020 (DAGGER), †

相反,您应该使用StringOfChar

Caption := StringOfChar(' ', 10);