Подсчет числа заданных букв в строке (HomeLisp)

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

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

здравствуйте можете помочь в написание программы? к примеру сколько букв "а" или букв "б" в тексте

Решение задачи: «Подсчет числа заданных букв в строке (HomeLisp)»

textual
Листинг программы
(defun cnt (a s) 
  (loop for e across s when (eql e a) count e))
 
> (cnt #\a "aaaaaabbbbb")
6
> (cnt #\b "aaaaaabbbbb")
5

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

В данном коде определён функционал подсчёта количества заданных букв в строке.

  1. (defun cnt (a s) — функция с именем cnt, которая принимает два аргумента a и s.
  2. (loop for e across s when (eql e a) count e) — это тело функции, которое состоит из цикла loop.
  3. В цикле происходит итерация по каждому символу строки s.
  4. Когда встречается символ, который равен аргументу a, то этот символ увеличивается на единицу.
  5. Результатом работы функции является количество заданных букв в строке. Пример использования функции:

    (cnt #\a aaaaaabbbbb) 6 В этом примере мы вызываем функцию cnt с аргументом #\a (задаём символ 'a') и строкой aaaaaabbbbb (строка из 10 символов 'a' и 10 символов 'b'). Функция проходит по каждому символу строки и считает количество символов 'a'. Результатом выполнения функции будет число 6, так как в строке было 6 символов 'a'. (cnt #\b aaaaaabbbbb) 5 В этом примере мы вызываем функцию cnt с аргументом #\b (задаём символ 'b') и той же строкой aaaaaabbbbb. Функция проходит по каждому символу строки и считает количество символов 'b'. Результатом выполнения функции будет число 5, так как в строке было 5 символов 'b'.

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

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