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

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

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

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

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

textual
Листинг программы
  1. (defun insert-word (s p r &aux (e (search p s)))
  2.   (cond ((null e) s)
  3.         ((concatenate 'string
  4.                       (subseq s 0 e)
  5.                       p
  6.                       " "
  7.                       r
  8.                       (insert-word (subseq s (+ e (length p))) p r)))))
  9.  
  10. > (insert-word "To be or not to be" "be" "beer")
  11. "To be beer or not to be beer"
  12. > (insert-word "To bbbe" "be" "beer")
  13. "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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы