arrays - 如何为 Char 数组赋值?

标签 arrays delphi char variable-assignment

假设我有变量:

Var question : array[1..50] of char;

当我这样做时:

question := 't'; //What is the correct way to change the value?

它返回一个错误:

Incompatible types: 'array[1..50] of Char' and 'Char'

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

这个问题的原因是我在另一个单元中有一条记录(这只是一个基本示例,不是我上面实际写的)在该单元中我有一个记录,我不能使用字符串数据输入(或者有什么办法吗?如果有请解释一下)。我只需要知道如何为字符数组赋予值。

最佳答案

虽然 Delphi 字符串和字符数组相关,但它们并不相同。

Delphi 重载了字符串和文字(字符和字符串)对字符数组的赋值,但仅当数组下限为零时才有效。

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

  var x : array[0..49] of char;
  begin
    x:='b';  // char literal
    x:='bb';  // string literal      
  end.

如果我将 [0 更改为 [1],则会失败。此限制可能简化了处理此问题的语言帮助程序,并且该功能可能仅用于处理转换后的 C 结构,其中数组的下限始终为 0。

关于arrays - 如何为 Char 数组赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5801542/

相关文章:

c++ - 用 int 值初始化 vector <char>

C++ C2466 错误

java - 在创建 Java 数组时使用尖括号和方括号方法的区别

javascript - 使用字符串数组创建最长可能的单词链

delphi - Delphi 2010的ribbon控件在应用程序菜单中有页脚内容?

delphi - 取代 ASTA 作为中间层解决方案

delphi - 调试设计时包时启动 Delphi 时出错

php - 将数组位转换为实际图像

javascript - 即时创建嵌套数组

Java:使用if条件检查char变量的内容