如何为Char数组赋值?

Ske*_*a87 3 arrays delphi char variable-assignment

说我有变量:

Var question : array[1..50] of char;
Run Code Online (Sandbox Code Playgroud)

当我做:

question := 't'; //What is the correct way to change the value?
Run Code Online (Sandbox Code Playgroud)

它返回一个错误:

不兼容的类型:'char'的数组[1..50]和'Char'

注意:我希望最大字符串大小为50个字符,而不是50个不同的字符.

这个问题的原因是我在另一个单元中有一个记录(这只是一个基本的例子,而不是我上面写的那个)在那个单元里我有一个Record,我不能使用字符串数据类型(或者有办法吗?请说明是否有).我只需要知道如何为一组字符赋值.

Mar*_*ort 8

虽然Delphi字符串和char数组是相关的,但它们并不相同.

Delphi将字符串和文字(char和string)的赋值重载到字符数组,但仅在下部数组绑定为零时才重载.

以下代码适用于D2007和Delphi XE:

  var x : array[0..49] of char;
  begin
    x:='b';  // char literal
    x:='bb';  // string literal      
  end.
Run Code Online (Sandbox Code Playgroud)

如果我改变[0到[1它失败了.这种限制可能简化了处理此问题的语言帮助程序,并且该功能可能仅用于处理转换后的C结构,其中数组总是具有下限0.