@quintbrut

Как разделить строку на масив по пробелу?

Допустим есть строка:
Произвольная строка
Нужно чтобы было так:
['Произвольная', 'строка']
  • Вопрос задан
  • 3364 просмотра
Решения вопроса 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
По циклу прогоняешь строку, если пробел, то от начала до пробела помещаешь в массив.
Рекомендую сначала посчитать пробелы одним циклом. Установить размер массива = кол-во пробелов + 1.
Далее уже заполнять массив.
Тебе нужна переменная, которая запомнит последнюю позицию
LastPos
И переменная последнего элемента
LastIndex
Ну и вот:
SetLength(a, SpaceCount + 1);
LastPos := 1;
LastIndex := 0;
for i := 1 to Length(Str) do
  if Str[i] = ' ' then
  begin
    a[LastIndex] := Copy(Str, LastPos, (i - LastPos)); //-- тут возможно +-1
    Inc(LastIndex);
    LastPos := i;
  end;


Это если для чистого Pascal, а если для Delphi, то лучше TStringList использовать и его метод DelemitedText
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@zedxxx
Используйте свойство Split:

uses 
  ...
  SysUtils;
     
var
  I: Integer;
  VStr: string;
  VArr: TStringArray;
begin
  VStr := 'Произвольная строка';
  VArr := VStr.Split(' ');

  for I := 0 to Length(VArr) - 1 do begin
    WriteLn(VArr[I]);
  end;
end;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы