Pascal - 按字符将字符串拆分为数组

时间:2013-11-04 19:09:29

标签: string pascal

我正在尝试寻找解决方案,我该如何拆分字符串:

abkgwvc

array的字符?预期产出是:

array[0] = a
array[3] = g
...

任何想法?

<小时/> 的解决方案

for i := 0 to length(string) do
begin
    array[i] = copy(string, i, 1);
end;

1 个答案:

答案 0 :(得分:6)

字符串可以直接作为字符数组访问,因此不需要使用Copy。下面的示例基于支持动态数组的Delphi / Lazarus版本,但您可以使用相同方式使用旧式固定长度数组(Arr: array[..] of Char);只需删除SetLength调用并将声明更改为正确的数组类型。

var
  Str: string;
  Arr: array of Char;
  i: Integer;
  Len: Integer;
begin
  Str := 'abkgwvc';
  Len := Length(Str);
  SetLength(arr, Len);

  // Dynamic arrays are 0-based indexing, while
  // strings are 1 based. We need to subtract 1
  // from the array index.
  for i := 1 to Len do
    Arr[i - 1] := Str[i];  
end;

(当然,如果你使用动态数组,那么你不清楚为什么你首先需要一个单独的数组;你可以只访问字符串char-by-char直接。)