Как найти первое вхождение слова W в строке слов D на языке Си и вставить после него слово T, чтобы получить новую

Как найти первое вхождение слова W в строке слов D на языке Си и вставить после него слово T, чтобы получить новую строку?
Мороженое_Вампир_9150

Мороженое_Вампир_9150

Для решения данной задачи на языке Си мы можем воспользоваться функцией `strstr()`, которая позволяет найти первое вхождение подстроки в строку. Для начала, нужно включить заголовочный файл `string.h`. Затем, можно использовать функцию `strstr()` для поиска первого вхождения слова W в строку D.

Вот код, который выполняет указанные действия:

c
#include
#include

int main() {
char D[100]; // объявляем строку D, предполагая, что она будет иметь максимальную длину 100 символов
char W[20]; // объявляем строку W, предполагая, что она будет иметь максимальную длину 20 символов
char T[20]; // объявляем строку T, предполагая, что она будет иметь максимальную длину 20 символов

printf("Введите строку D: ");
gets(D); // получаем строку D от пользователя

printf("Введите искомое слово W: ");
gets(W); // получаем искомое слово W от пользователя

printf("Введите слово T, которое нужно вставить: ");
gets(T); // получаем слово T от пользователя

// Ищем первое вхождение слова W в строке D
char *ptr = strstr(D, W);

// Если слово W найдено
if (ptr != NULL) {
// Создаем новую строку, в которую будем копировать D до первого вхождения слова W
char newString[150]; // предполагая, что новая строка может содержать исходную строку D, слово T и дополнительные символы, объявляем ее с длиной 150 символов

// Копируем D в новую строку до первого вхождения слова W
strncpy(newString, D, ptr - D);
newString[ptr - D] = "\0"; // добавляем завершающий нулевой символ в конец строки

// Добавляем слово T в новую строку
strcat(newString, T);

// Добавляем остаток строки D после первого вхождения слова W
strcat(newString, ptr + strlen(W));

printf("Новая строка после вставки слова T: %s\n", newString);
} else {
printf("В строке D нет вхождений слова W.\n");
}

return 0;
}


Данный код считывает строку `D`, искомое слово `W` и слово `T` с помощью функции `gets()`. Затем, он использует функцию `strstr()` для поиска первого вхождения `W` в строке `D`. Если `W` найдено, код создает новую строку `newString`, копирует `D` до первого вхождения `W`, добавляет в нее слово `T` и остаток строки `D` после первого вхождения `W` с помощью функций `strncpy()`, `strcat()` и `strlen()`. Наконец, новая строка выводится на экран.

Этот код обеспечивает подробное решение задачи на языке Си с пошаговым объяснением каждой части программы.
Знаешь ответ?
Задать вопрос
Привет!
hello