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

Lko*_*opo 0 string pascal

我想找到解决方案,我怎么能像这样拆分字符串:

abkgwvc
Run Code Online (Sandbox Code Playgroud)

array通过人物?预期产出是:

array[0] = a
array[3] = g
...
Run Code Online (Sandbox Code Playgroud)

任何的想法?


方案:

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

Ken*_*ite 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;
Run Code Online (Sandbox Code Playgroud)

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