Дана строка разделенная пропусками. Подсчитать количество слов которые имеют не менее двух символов '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'.
- Включаются необходимые заголовочные файлы:
stdio.h
для работы с функциями ввода-выводаstring.h
для работы со строками
- Определяются необходимые константы:
DELIM
- разделитель (пробел, табуляция, перевод строки)CHR
- символ, который должен присутствовать в словах (в данном случае 'c')
- Определяется переменная `buf`, которая будет использоваться для хранения строки, введенной пользователем.
- Осуществляется цикл, который будет выполняться до тех пор, пока пользователь вводит строку и она не пустая.
- Внутри цикла создаются две переменные:
pw
- текущее словоpc
- текущий символ в слове
- С помощью функции
strtok
слово разбивается на отдельные символы и проверяется каждый символ:- Если символ равен 'c', то увеличивается счетчик
cnt
- Если символ равен 'c', то увеличивается счетчик
- После обработки всех слов в строке выводится количество слов, содержащих два или более символа 'c'.
- В конце программы возвращается 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д