Написать, какие буквы и сколько раз встречаются в заданном тексте - C (СИ)

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

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

Строка, содержащая произвольный текст, состоит не более чем из 255 символов. Написать, какие буквы и сколько раз встречаются в этом тексте. Ответ должен приводиться в грамматически правильной форме, например а — 25 раз, v — 3 раза и т. д

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

textual
Листинг программы
#include <stdio.h>
#define N 26
int main()
{
    char str[] = "Etiam scelerisque, nunc ac egestas consequat, odio nibh euismod nulla, eget auctor orci nibh vel nisi."
                 "Aliquam erat volutpat. Mauris vel neque sit amet nunc gravida congue sed sit amet purus."
                 " Quisque lacus quam, egestas ac tincidunt a, lacinia vel velit. Aenean facilisis nulla vitae"
                 " urna tincidunt congue sed ut dui. Morbi malesuada nulla nec purus convallis consequat.";
    int alp[N] = {0}, i = 0;
    while(str[i]){
        if(str[i] >= 'a' && str[i] <= 'z')
            alp[str[i] - 'a']++;
        i++;
    }
    for(i = 0; i < N; i++)
        if(alp[i])
            printf("letter '%c' - %4d times\n", i + 'a', alp[i]);
    return 0;
}

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

В данном коде на языке C реализован подсчёт количества вхождений каждой буквы в заданном тексте. Список действий:

  1. Подключение стандартной библиотеки для работы с вводом/выводом.
  2. Установка константы N, которая равна 26 (буквы в латинском алфавите от 'a' до 'z').
  3. Создание массива alp типа int для хранения количества вхождений каждой буквы. Изначально все элементы массива равны 0.
  4. Объявление переменной i, которая будет использоваться как счётчик в цикле.
  5. Ввод текста в виде трёх строк в переменную str.
  6. При каждой итерации цикла, который выполняется до тех пор, пока не встретится символ 0 (конец строки), проверяется, является ли текущий символ буквой от 'a' до 'z'. Если да, то к текущей букве (str[i]) приводится значение i (для корректного сравнения символов), и увеличивается значение в соответствующем элементе массива alp.
  7. После завершения цикла происходит вывод на экран количества вхождений каждой буквы в формате letter 'x' - y times, где 'x' — буква, y — количество вхождений.

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

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