Написать программу, которая вставляет в текст слово после указанного слова - Lisp

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

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

Привет всем. Помогите решить данную задачу. Написать программу, которая вставляет в текст слово после указанного слова. Продолжение поиска слова для вставки слова выполнять по запросу пользователя. (Нужно с использованием обработки строк, функций: concatenate, search, subseq, length). Заранее спасибо)

Решение задачи: «Написать программу, которая вставляет в текст слово после указанного слова»

textual
Листинг программы
(defun insert-word (s p r &aux (e (search p s)))
  (cond ((null e) s)
        ((concatenate 'string
                      (subseq s 0 e)
                      p
                      " "
                      r
                      (insert-word (subseq s (+ e (length p))) p r)))))
 
> (insert-word "To be or not to be" "be" "beer")
"To be beer or not to be beer"
> (insert-word "To bbbe" "be" "beer")
"To bbbe beer"

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

В данном коде представлена функция insert-word, которая принимает на вход три аргумента: s (исходный текст), p (слово, после которого необходимо вставить новое слово) и r (новое слово). Функция ищет позицию указанного слова p в тексте s с помощью встроенной функции search. Затем, используя функцию concatenate, она вставляет новое слово r после найденного слова p в тексте s. Если указанное слово p не найдено в тексте s, то функция возвращает исходный текст s. Если слово p найдено в тексте s, то функция рекурсивно вызывает саму себя с новыми аргументами: (subseq s (+ e (length p))) — это следующий фрагмент текста после найденного слова p, p — это само найденное слово, и r — это новое слово. Таким образом, функция продолжает работу до тех пор, пока не будет достигнута конечная позиция в тексте s, после чего возвращает результат. Примеры использования функции insert-word:

  1. (insert-wordTo be or not to be`be beer)— в результате получим строкуTo be beer or not to be beer`.
  2. (insert-wordTo bbbe`be beer)— в результате получим строкуTo bbbe beer`.

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


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

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

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