Распечатать все слова нечетной длины, имеющие не менее двух букв «а» - 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; 
}

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

  1. Подключение необходимых библиотек: stdlib.h, printf.h, string.h
  2. Объявление переменных:
    • str[BUFSIZ] - строка, в которую считывается ввод пользователя
    • ptr - указатель на текущий символ в строке
    • p - указатель на второе вхождение символа 'a' в строке
  3. Вывод сообщения для ввода строки
  4. Считывание строки с помощью функции fgets()
  5. Разделение строки на отдельные слова с помощью функции strtok()
  6. Проверка условий для каждого слова:
    • Длина слова должна быть нечетной (strlen(ptr) % 2 == 1)
    • В слове должно быть минимум два символа 'a' (p = strchr(ptr, 'a')) и еще один символ 'a' после него (strchr(p + 1, 'a'))
  7. Если условия выполняются, то выводится слово
  8. Цикл продолжается до тех пор, пока не будут выполнены все условия
  9. Конец программы

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


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

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

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