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

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

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

Код к задаче: «Подсчитать количество букв «а» в последнем слове последовательности - 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;
}

11   голосов, оценка 3.545 из 5


СОХРАНИТЬ ССЫЛКУ