Распечатать все слова нечетной длины, имеющие не менее двух букв «а» - C (СИ)
Формулировка задачи:
Введена строка символов. Распечатать все слова нечетной длины, имеющие не менее двух букв «а».
Также если не сложно несколько объяснительных строк к каждой важно строке Заранее огромное спасибо!
Решение задачи: «Распечатать все слова нечетной длины, имеющие не менее двух букв «а»»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> #include <string.h> int main() { char str[BUFSIZ]; char *ptr, *p; printf(">>"); fgets(str, BUFSIZ, stdin); for (ptr = strtok(str, "\n\r\t ,.?!"); ptr; ptr = strtok(NULL, "\n\r\t ,.?!")) if (strlen(ptr) % 2 == 1 && (p = strchr(ptr, 'a')) && strchr(p + 1, 'a')) puts(ptr); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdlib.h, printf.h, string.h
- Объявление переменных:
- str[BUFSIZ] - строка, в которую считывается ввод пользователя
- ptr - указатель на текущий символ в строке
- p - указатель на второе вхождение символа 'a' в строке
- Вывод сообщения для ввода строки
- Считывание строки с помощью функции fgets()
- Разделение строки на отдельные слова с помощью функции strtok()
- Проверка условий для каждого слова:
- Длина слова должна быть нечетной (strlen(ptr) % 2 == 1)
- В слове должно быть минимум два символа 'a' (p = strchr(ptr, 'a')) и еще один символ 'a' после него (strchr(p + 1, 'a'))
- Если условия выполняются, то выводится слово
- Цикл продолжается до тех пор, пока не будут выполнены все условия
- Конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д