Разбить текст на слова - Turbo Pascal

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

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

Вот например пример: "Я люблю Россию" как разбить это предложение на слова например: b[0]=Я b[1]=люблю b[2]=Россию

Решение задачи: «Разбить текст на слова»

textual
Листинг программы
const
 
   limits = [#0..#32,'.',',',':',';','!','?','"'];
type
 
   TWords = array[1..40] of string;
 
var
   text : string;
   words : TWords;
 
function GetWords(s : string; var w : TWords) : byte;
var
   i,back,n : byte;
begin
   i := 1;
   n := 0;
   while(i<=length(s)) do begin
      while(i<=length(s)) and (s[i] in limits) do
       inc(i);
      if i<=length(s) then begin
         back := i;
         while(i<=length(s)) and not(s[i] in limits) do
          inc(i);
         inc(n);
         w[n] := copy(s, back, i-back);
      end;
   end;
 
   GetWords := n;
end;

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

  1. В начале объявляются константы и тип данных. Константы limits представляют собой набор символов, которые могут быть использованы в тексте. Тип данных TWords представляет собой массив строк, который будет использоваться для хранения слов.
  2. Переменная text инициализируется строкой, которую нужно разбить на слова.
  3. Затем объявляется переменная words, которая будет использоваться для хранения результатов.
  4. Функция GetWords принимает два аргумента: строку s и массив w. Она итерирует по каждому символу в строке s.
  5. Внутри функции объявляются три переменные: i, back и n. i инициализируется значением 1, back и n инициализируются значением 0.
  6. В цикле while(i<=length(s)) происходит следующее:
    • Если i меньше или равно длине строки s, то переменная i увеличивается на 1.
    • Если i больше длины строки s, то переменная back устанавливается равной i, а переменная i устанавливается равной i+1.
    • Если i больше длины строки s и символ s[i] входит в набор limits, то переменная i увеличивается на 1.
    • Если i больше длины строки s и символ s[i] не входит в набор limits, то переменная i увеличивается на 1.
    • Если i больше длины строки s, то переменная n увеличивается на 1.
    • Если i больше длины строки s, то строка s[back:i-back+1] копируется в массив w[n].
  7. По завершении цикла while функция возвращает значение n, которое представляет количество слов, найденных в строке s.
  8. Функция GetWords возвращает значение n.

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


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

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

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