delphi - 用空格初始化 char 数组(#32)而不是 null(#0)

标签 delphi

我使用delphi 2010。我需要用空格而不是空值填充字符数组。我使用了以下代码,但不起作用。

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 数组中它运行良好。

请告知原因及解决方法。

谢谢。

最佳答案

FillChar 在 Unicode Delphi 中命名错误。它确实应该命名为FillAnsiChar。因此,您将使用具有序数值 $2020(又名 U+2020 (DAGGER), †)的 UTF-16 字符填充字符串。 .

您应该使用 StringOfChar :

Caption := StringOfChar(' ', 10);

关于delphi - 用空格初始化 char 数组(#32)而不是 null(#0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466734/

相关文章:

delphi - 如何在 Delphi 2007 中使用 html 上下文相关帮助 - 基础知识

mysql - FireDAC,将 "secure-auth=OFF"传递给客户端库

delphi - TXMLNodeList 节点名称 #text

delphi - 记录数组的写入时复制

oracle - 如何将 DATE 类型的参数传递给函数

Delphi:TList 创建,内存错误

delphi - 需要多线程内存管理器

database - Tdbf/tdataset在delphi中对多个字段进行排序

delphi - TVector3D.AddVector3D 不起作用(对我来说)

delphi - DWScript 是否兼容为 Android 和 IO 创建 Delphi XE5 代码?