Подсчитать количество букв «а» в последнем слове последовательности - C (СИ)

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

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

Добрый вечер! Группы символов, разделенные пробелами и не содержащие пробелы внутри себя, будем называть словами. Подсчитать количество букв «а» в последнем слове данной последовательности.

Решение задачи: «Подсчитать количество букв «а» в последнем слове последовательности»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void trim_end(char *str, char ch)
{
    char *ptr = NULL;
    size_t size = strlen(str);
    ptr = str + size - 1;
 
    while (*ptr == ch && ptr >= str)
    {
        *ptr-- = '\0';
    }
}
 
size_t character_count(const char *str, const char ch)
{
    size_t count = 0u;
 
    while (str && *str)
    {
        if (*str++ == ch)
        {
            count++;
        }
    }
 
    return count;
}
 
int main()
{
    char str[BUFSIZ];
    const char ch = 'a';
    printf("Please enter string: ");
 
    if (fgets(str, BUFSIZ, stdin))
    {
        char *last_space = NULL;
        trim_end(str, '\n');
        
        last_space = strrchr(str, ' ');
 
        if (last_space == NULL)
        {
            last_space = str;
        }
        else
        {
            last_space++;
        }
 
        printf("'%c' = %u\n", ch, character_count(last_space, ch));
    }
 
#ifdef _MSC_VER
    system("pause");
#endif
 
    return 0;
}

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

  1. Включаются необходимые заголовочные файлы
  2. Определяются две функции: trim_end и character_count
  3. Функция trim_end принимает два аргумента: строку и символ. Она обрезает конец строки до первого вхождения указанного символа
  4. Функция character_count принимает два аргумента: строку и символ. Она подсчитывает количество указанных символов в строке
  5. В функции main пользователю предлагается ввести строку
  6. Введенная строка сохраняется в массиве str
  7. Затем в функции main вызывается функция trim_end для удаления символа новой строки из введенной строки
  8. В функции main вызывается функция strrchr для поиска последнего пробела в строке
  9. Если последний пробел не найден, то он считается первым символом строки
  10. В противном случае, указатель на последний пробел увеличивается на единицу, чтобы пропустить пробел
  11. Затем вызывается функция character_count для подсчета количества указанных символов в найденной подстроке
  12. Результат выводится на экран
  13. В конце программы добавлен вызов функции pause для приостановки выполнения программы до нажатия клавиши Enter в консоли Windows
  14. Программа завершается возвратом значения 0, что означает успешное выполнение

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


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

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

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