0

我正在尝试找到解决方案,我怎样才能像这样拆分字符串:

abkgwvc

array性格?预期输出为:

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

任何想法?


解决方案

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

1 回答 1

7

字符串可以直接作为字符数组访问,因此无需使用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;

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

于 2013-11-04T23:23:09.103 回答