Подсчитать количество слов, длина которых не превышает заданного числа - C (СИ)

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

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

Дана строка символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Подсчитать количество слов, длина которых не превышает заданного числа n. Adney на форуме Обратить внимание администрации на это сообщение Мультицитирование этого сообщения

Решение задачи: «Подсчитать количество слов, длина которых не превышает заданного числа»

textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
 
unsigned int count_words(const char* s, int n){
    unsigned int cnt = 0;
    int i = 0;
    do {
        if(*s && !isspace(*s))
            ++i;
        else if(i > 0){
            if(i <= n)
                ++cnt;
            i = 0;
        }
    } while(*s++ != '\0');
    return cnt;
}
 
int main(void){
    char s[] = "APL PERL PHP JAVA ADA LISP C";
    int  n   = 3;
    printf("count: %u\n", count_words(s, n));
    getchar();
    return 0;
}

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

  1. Подключение необходимых библиотек для работы с файлами и строками
  2. Определение функции count_words, которая принимает два аргумента: указатель на строку и целое число
  3. Инициализация переменных: cnt (счетчик слов), i (индекс текущего символа) и s (текущий символ)
  4. Использование цикла do-while для прохода по всем символам строки
  5. Внутри цикла проверяется текущий символ: если он не пробел и не является конечной нулевой отметкой, то увеличивается индекс i
  6. Если текущий символ - пробел или после него есть пробел, то проверяется значение i. Если i больше 0 и меньше или равно n, то увеличивается счетчик cnt
  7. После проверки счетчика i сбрасывается в 0, так как следующее слово может начинаться с нового символа
  8. После прохода по всем символам возвращается значение счетчика cnt
  9. В функции main создается строка s и инициализируется значениями APL PERL PHP JAVA ADA LISP C
  10. Задается значение n равное 3
  11. Вызывается функция count_words с аргументами s и n
  12. Выводится результат работы функции count_words на экран
  13. Программа ожидает нажатия любой клавиши для завершения работы
  14. Возвращается 0, что означает успешное завершение работы программы

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


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

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

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