Monkey Place

ПОМОГИТЕ, ПОЖАЛУЙСТА, НАПИСАТЬ ПРОГРАММУ НА ЯЗЫКЕ СИ. Дана строка. Найти в ней повторяющиеся слова.

В данной статье мы рассмотрим пример программы на языке программирования Си, которая позволяет находить повторяющиеся слова в заданной строке.

Описание задачи

Наша программа должна принимать входную строку и выводить все повторяющиеся слова, которые встречаются в этой строке. Повторения могут быть как последовательными, так и непоследовательными.

Подход к решению

Для решения данной задачи мы будем использовать следующий подход:

  1. Определим строку и выделим память для массива слов и индекса текущего слова.
  2. Используем функцию strtok для разделения строки на отдельные слова с использованием пробела в качестве разделителя.
  3. Используем цикл while для обработки каждого слова в строке.
  4. Для каждого слова, проверим, есть ли оно уже в массиве слов. Если да, то это повторяющееся слово и мы его выводим. Если нет, то добавляем его в массив слов.
  5. Повторяем шаги 3-4 для всех слов в строке.
  6. Освобождаем выделенную память для массива слов.

Пример программы

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_WORDS 100
#define MAX_LENGTH 100

int main() {
    char str[MAX_LENGTH];
    char* words[MAX_WORDS];

    printf("Введите строку: ");
    fgets(str, sizeof(str), stdin);

    int word_count = 0;
    char* word = strtok(str, " \n");

    while (word != NULL) {
        int duplicate = 0;

        for (int i = 0; i < word_count; i++) {
            if (strcmp(words[i], word) == 0) {
                duplicate = 1;
                break;
            }
        }

        if (duplicate) {
            printf("Повторяющееся слово: %s\n", word);
        } else {
            words[word_count] = strdup(word);
            word_count++;
        }

        word = strtok(NULL, " \n");
    }

    for (int i = 0; i < word_count; i++) {
        free(words[i]);
    }

    return 0;
}

Объяснение программы

Заключение

Программа на языке программирования Си, представленная выше, позволяет находить повторяющиеся слова в заданной строке. Вы можете использовать данный код как отправную точку для создания своей программы на Си.