Вывести на экран все особые слова - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана последовательность символов, состоящая из слов. Назовем слово особым, если в него в любых сочетаниях входят четыре различные буквы. Вывести на экран все особые слова или сообщение «Нет», если особых слов нет.

Решение задачи: «Вывести на экран все особые слова»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdbool.h>
#include <conio.h>
int main() {
 
    const char CDelim[] = " \t\n,.?!";
    bool find = false;
    char text[256];
    const char* p;
    unsigned count = 0;
    int alph[26] = { 0 };
    unsigned i = sizeof(alph) / sizeof(*alph);
 
    printf("text: ");
    fgets(text, sizeof(text), stdin);
 
    p = strtok(text, CDelim);
    while (p) {
        
        for (; *p; ++p) {
        if (isalpha(*p)) {
            alph[tolower(*p) - 'a']++;
        }
    }
 
    while (i--) {
        if (alph[i]) {
            count++;
            
        }
    }
            if (count==4) {
            printf("%s\n", p);
            find = true;
        }
        p = strtok(NULL, CDelim);
    }
 
    if (find == false) {
        printf("no ...\n");
    }
    getch();
    return 0;
}

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

В этом коде используется стандартная библиотека языка C для работы со строками, символами и массивами. Список действий, которые выполняются в коде:

  1. Включаются необходимые заголовочные файлы:
    • stdio.h - для работы с функциями ввода-вывода;
    • string.h - для работы со строками;
    • ctype.h - для работы с символами;
    • stdbool.h - для работы с булевыми значениями;
    • conio.h - для работы с функцией getch(), которая используется для приостановки выполнения программы до тех пор, пока пользователь не нажмет клавишу.
  2. Определяются переменные и константы:
    • CDelim[] - это строка, которая разделяет вводимый текст на отдельные слова;
    • find - это булево значение, которое изменяется в процессе выполнения программы и определяет, было ли найдено хотя бы одно особое слово;
    • text - это строка, в которую считывается ввод пользователя;
    • p - это указатель на текущее слово в тексте;
    • count - это счетчик, который подсчитывает количество найденных особых слов;
    • alph - это массив, в котором подсчитывается количество букв в каждом слове;
    • i - это индекс, используемый для итерации по массиву alph.
  3. Считывается ввод пользователя:
    • Пользователю предлагается ввести текст;
    • Введенный текст считывается в строку text.
  4. Находится первое слово в тексте:
    • p инициализируется значением strtok(text, CDelim);
    • strtok() - это функция, которая разделяет строку на слова и возвращает указатель на первое слово.
  5. Проверяется каждое слово на наличие букв:
    • Если текущий символ является буквой, он учитывается в массиве alph;
    • Если текущий символ не является буквой, он игнорируется.
  6. Подсчитывается количество слов с буквами:
    • Инициализируется счетчик count равным 0;
    • Проверяется каждый элемент массива alph, если его значение больше 0, увеличивается счетчик count.
  7. Выводится первое найденное особое слово:
    • Если count равен 4, это означает, что было найдено особое слово, и оно выводится на экран.
  8. Если особых слов не найдено, выводится сообщение об этом:
    • Если count не равен 4, выводится сообщение no ....
  9. Ожидается нажатие клавиши:
    • Функция getch() приостанавливает выполнение программы до тех пор, пока пользователь не нажмет клавишу.
  10. Завершается выполнение программы:
    • Возвращается значение 0, что означает успешное завершение программы.

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


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

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

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