Строка: Поиск количества слов в строке, которые оканчиваются и начинаются с одной и той же буквы - C (СИ)
Формулировка задачи:
Пожалуйста, помогите с задачей поиска количества слов в строке, которые оканчиваются и начинаются с одной и той же буквы. Как написать код именно на СИ?
Просмотрены темы форума, но ничего работающего так и не найдено.
Решение задачи: «Строка: Поиск количества слов в строке, которые оканчиваются и начинаются с одной и той же буквы»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> int count_words(const char* s){ int n = 0, k = 0; do { if(isalnum(*s)) ++k; else if(k > 0){ if(toupper(*(s - k)) == toupper(*(s - 1))) ++n; k = 0; } } while(*s++ != '\0'); return n; } int main(void){ char s[] = "WOW, ADA, APL, KAZAK, Kodak."; printf("count: %d\n", count_words(s)); return 0; }
Объяснение кода листинга программы
- Подключаются необходимые библиотеки для работы с файлами и обработки символов.
- Определяется функция count_words, которая принимает на вход указатель на строку.
- Внутри функции объявляются две переменные: n и k.
- Переменная n отвечает за подсчет слов, а переменная k используется для контроля повторяющихся букв.
- В цикле do-while происходит проход по каждому символу строки.
- Если текущий символ является буквой или цифрой, то увеличивается значение переменной k.
- Если текущий символ не является буквой или цифрой и значение переменной k больше 0, то проверяется совпадение верхнейcase буквы текущего символа с верхнейcase буквой предыдущего символа.
- Если совпадение найдено, то увеличивается значение переменной n.
- Значение переменной k сбрасывается в 0.
- После прохода по всем символам строки, функция возвращает значение переменной n.
- В функции main создается строка s, которая содержит тестовые данные.
- Вызывается функция count_words с аргументом s.
- Результат подсчета выводится на экран.
- Программа завершается без ошибок.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д