Удвоить согласные буквы - Lisp

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

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

Помогите пожалуйста! Дана строка текста. Определить функцию, которая возвращает копию этой строки, в которой все согласные буквы удвоены. Например: если дано "Привет, мир!", ответом будет "ППрривветт, ммирр!".

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

textual
Листинг программы
(defun task(text)
   (let ((v "аеёиоуыэюяАЕЁИОУЫЭЮЯ")
           (r ""))
      (iter (for s in-string text)
              (if (zerop (strInd v s)) (setq r (strCat r s s)) 
                                                     (setq r (strCat r s)))) r))

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

В данном коде реализована функция task, которая принимает в качестве аргумента строку text. Внутри функции создаются две переменные: v и r. Первая из них содержит строку аеёиоуыэюяАЕЁИОУЫЭЮЯ, а вторая - пустую строку. Затем происходит итерация по каждому символу входной строки. Если символ является нулевым, то есть не является буквой, то к переменной r добавляется этот символ и следующий за ним символ из строки v. Если символ является буквой, то к переменной r добавляется этот символ и следующий за ним символ из строки v. В конце функция возвращает полученную строку r.

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


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

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

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