Реализация аналога Сишной функции strtok - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Нужна реализация именно на Turbo Pascal аналога Си-шной функции strtok. Помогите. Документация:

Решение задачи: «Реализация аналога Сишной функции strtok»

textual
Листинг программы
type
  TChars=set of Char;
const
 delims:TChars=[#9,' ','.',',','-'];
 
function StrTok(const str: String; delims: TChars): String;
const
  s: String = '';
  i: Integer = 1;
var
  j: Integer;
begin
  if str<>'' then begin
    s:=str; i:=1;
  end;
  while (i<=Length(s)) and (s[i] in delims) do Inc(i);
  j:=i;
  while (i<=Length(s)) and not (s[i] in delims) do Inc(i);
  StrTok:=Copy(s,j,i-j);
end;
var s: String;
begin
  s:=StrTok('- This, a sample string.',delims);
  repeat
    WriteLn(s); s:=StrTok('',delims);
  until s='';
end.

Объяснение кода листинга программы

  1. Создается тип данных TChars, который представляет собой множество символов.
  2. Создается константа delims, которая содержит символы-разделители.
  3. Определяется функция StrTok, которая принимает строку и множество символов-разделителей в качестве параметров.
  4. Создается переменная s, которая инициализируется пустой строкой.
  5. Создается переменная i, которая инициализируется единицей.
  6. В цикле while происходит обработка строки.
  7. Если строка не пустая, то переменные s и i инициализируются значениями строки и единицы соответственно.
  8. В цикле while происходит обработка символов строки.
  9. Если текущий символ является символом-разделителем из множества delims, то переменная i инкрементируется.
  10. После обработки всех символов строки, переменная j инициализируется значением переменной i.
  11. В цикле while происходит обработка оставшейся части строки.
  12. Если строка не пустая, то переменная s инициализируется значением переменной j.
  13. После обработки всей оставшейся части строки, функция StrTok возвращает результат.
  14. Создается переменная s, которая инициализируется функцией StrTok.
  15. Запускается цикл while, в котором вызывается функция StrTok для пустой строки.
  16. Выводится результат каждой итерации цикла.
  17. Цикл while завершается, когда строка становится пустой.
  18. Завершается программа.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы