Как вставить определенное слово в строку в необходимом мне месте?

Вставка определенного слова в строку в языке программирования C может быть реализована несколькими способами. Ниже приведены два примера наиболее распространенных методов.

1. Использование функций strcat() и strncat():
Функция strcat() объединяет две строки, добавляя вторую строку в конец первой. Функция strncat() добавляет не более n символов из второй строки в конец первой строки. Вот пример кода, который показывает, как использовать эти функции для вставки слова в строку в нужном месте:

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

   int main() {
       char str[100] = "Hello, !"; // Исходная строка
       char word[] = "world"; // Слово, которое нужно вставить
       char temp[100]; // Временная строка для хранения результата

       int position = 7; // Позиция, в которую необходимо вставить слово

       strncpy(temp, str, position); // Копируем первую часть исходной строки во временную строку
       temp[position] = ''; // Добавляем завершающий нулевой символ
       strcat(temp, word); // Добавляем слово во временную строку
       strcat(temp, str + position); // Добавляем оставшуюся часть исходной строки

       strcpy(str, temp); // Копируем измененную строку обратно в исходную

       printf("Результат: %sn", str); // Выводим результат
       return 0;
   }

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

2. Использование указателей:
Другой способ вставить слово в строку - использование указателей. Вот пример кода, который показывает, как осуществить эту операцию:

   #include <stdio.h>

   void insertWord(char *str, const char *word, int position) {
       char temp[100]; // Временная строка для хранения результата
       int i, j;

       // Копируем символы до нужной позиции из исходной строки во временную строку
       for (i = 0; i < position; i++) {
           temp[i] = str[i];
       }

       // Вставляем символы из слова во временную строку
       for (j = 0; word[j] != ''; j++, i++) {
           temp[i] = word[j];
       }

       // Копируем оставшиеся символы из исходной строки во временную строку
       while (str[i - position] != '') {
           temp[i++] = str[i - position];
       }

       temp[i] = ''; // Добавляем завершающий нулевой символ
       strcpy(str, temp); // Копируем измененную строку обратно в исходную
   }

   int main() {
       char str[100] = "Hello, !"; // Исходная строка
       char word[] = "world"; // Слово, которое нужно вставить

       int position = 7; // Позиция, в которую необходимо вставить слово

       insertWord(str, word, position);

       printf("Результат: %sn", str); // Выводим результат

       return 0;
   }

В этом примере мы объявляем функцию insertWord(), которая принимает исходную строку (str), слово (word) и позицию (position). Затем мы копируем символы до нужной позиции из исходной строки во временную строку. Затем мы вставляем символы из слова во временную строку. Наконец, мы копируем оставшиеся символы из исходной строки во временную строку, добавляем завершающий нулевой символ и копируем измененную строку обратно в исходную.