Определить количество слов в строке содержащих ровно два символа «С» - C (СИ)
Формулировка задачи:
Дана строка – предложение. Определить количество слов в строке
содержащих ровно два символа «С». Символ «С» указывает пользователь. Функции библиотек stlib.h и string.h использовать запрещено.
Решение задачи: «Определить количество слов в строке содержащих ровно два символа «С»»
textual
Листинг программы
#include <stdio.h> size_t count_words(const char* s, char ch, size_t n) { size_t k = 0u, i = 0u; char c; do { c = *s & 0xDF; if(c >= 'A' && c <= 'Z') k += (*s == ch) ? 1 : 0; else { if(k == n) i++; k = 0; } } while( *s++ ); return i; } int main(void) { char str[] = "COC, [CISCO], CCCP, POL(CXCWC), COCA"; char ch = 'C'; printf("%u\n", count_words(str, ch, 2u)); return 0; }
Объяснение кода листинга программы
- В функции count_words определены три переменные: k, i и c. Значение переменной k равно 0 и используется для подсчета слов, содержащих заданный символ. Значение переменной i также равно 0 и используется для подсчета количества слов, длина которых равна n. Значение переменной c используется для получения символа из строки s.
- В функции используется цикл do-while, который выполняется до тех пор, пока не будет достигнут конец строки.
- Внутри цикла проверяется, является ли текущий символ буквой. Если да, то проверяется, равен ли он заданному символу. Если да, то значение переменной k увеличивается на 1.
- Если текущий символ не является буквой, то проверяется значение переменной k. Если оно равно n, то значение переменной i увеличивается на 1. Затем значение переменной k сбрасывается в 0.
- В функции main определена строка str и символ ch, равный 'C'.
- В функцию count_words передаются значения str, ch и 2.
- Результат работы функции count_words выводится на экран с помощью функции printf.
- Значение 0 возвращается в конце функции main, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д