Дана строка разделенная пропусками. Подсчитать количество слов которые имеют не менее двух символов 'c' - C (СИ)

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

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

Помогите решить

Решение задачи: «Дана строка разделенная пропусками. Подсчитать количество слов которые имеют не менее двух символов 'c'»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
#define DELIM " \t\n"
#define CHR 'c'
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) {
        char * pw, * pc;
        int cnt = 0;
        
        for ( pw = strtok(buf, DELIM); pw; pw = strtok(NULL, DELIM) )
            cnt += ( ( ( pc = strchr(pw, CHR) ) != NULL ) && ( strchr(pc + 1, CHR) != NULL ) );
        
        printf("%d word(s) with two or more symbols %c\n", cnt, CHR);
    }
    
    return 0;
}

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

В этом коде осуществляется подсчет количества слов в строке, разделенной пробелами, которые содержат два или более символа 'c'.

  1. Включаются необходимые заголовочные файлы:
    • stdio.h для работы с функциями ввода-вывода
    • string.h для работы со строками
  2. Определяются необходимые константы:
    • DELIM - разделитель (пробел, табуляция, перевод строки)
    • CHR - символ, который должен присутствовать в словах (в данном случае 'c')
  3. Определяется переменная `buf`, которая будет использоваться для хранения строки, введенной пользователем.
  4. Осуществляется цикл, который будет выполняться до тех пор, пока пользователь вводит строку и она не пустая.
  5. Внутри цикла создаются две переменные:
    • pw - текущее слово
    • pc - текущий символ в слове
  6. С помощью функции strtok слово разбивается на отдельные символы и проверяется каждый символ:
    • Если символ равен 'c', то увеличивается счетчик cnt
  7. После обработки всех слов в строке выводится количество слов, содержащих два или более символа 'c'.
  8. В конце программы возвращается 0, что означает успешное выполнение.

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


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

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

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