ПОМОГИТЕ, ПОЖАЛУЙСТА, НАПИСАТЬ ПРОГРАММУ НА ЯЗЫКЕ СИ. Дана строка. Найти в ней повторяющиеся слова.
В данной статье мы рассмотрим пример программы на языке программирования Си, которая позволяет находить повторяющиеся слова в заданной строке.
Описание задачи
Наша программа должна принимать входную строку и выводить все повторяющиеся слова, которые встречаются в этой строке. Повторения могут быть как последовательными, так и непоследовательными.
Подход к решению
Для решения данной задачи мы будем использовать следующий подход:
- Определим строку и выделим память для массива слов и индекса текущего слова.
- Используем функцию
strtok
для разделения строки на отдельные слова с использованием пробела в качестве разделителя. - Используем цикл
while
для обработки каждого слова в строке. - Для каждого слова, проверим, есть ли оно уже в массиве слов. Если да, то это повторяющееся слово и мы его выводим. Если нет, то добавляем его в массив слов.
- Повторяем шаги 3-4 для всех слов в строке.
- Освобождаем выделенную память для массива слов.
Пример программы
#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;
}
Объяснение программы
- Мы используем массив
words
для хранения уникальных слов, и переменнуюword_count
для отслеживания количества добавленных слов. - Функция
fgets
используется для чтения строки с клавиатуры. - Мы используем функцию
strtok
для разделения строки на отдельные слова. - В цикле
while
мы сравниваем каждое слово с уже добавленными словами в массивеwords
. Если слово уже присутствует в массиве, то оно считается повторяющимся и выводится на экран. Если слово является уникальным, оно добавляется в массивwords
. - После обработки всех слов в строке, мы освобождаем память, выделенную для каждого слова в массиве
words
.
Заключение
Программа на языке программирования Си, представленная выше, позволяет находить повторяющиеся слова в заданной строке. Вы можете использовать данный код как отправную точку для создания своей программы на Си.
- Push-Up Бюстгальтер Charm 11 на Monkeyplace.ru/shop
- Описание продукта "Синее двойное эрекционное кольцо Dual Rings Blue"
- Золотистая карнавальная маска "Наос"
- Если по матёхе в году 4, а экзамен 3, что будет в аттестате? (9 класс)
- В каком порядке находятся ноты на грифе домры?
- У кого в огороде динозавры закопываются?