Удвоить согласные буквы - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д