Заменить в строке S все вхождения строки S1 на строку S2 - C (СИ)

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

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

Даны строки S , S1, S2. Заменить в строке S все вхождения строки S1 на строку S2 - C (СИ)

Решение задачи: «Заменить в строке S все вхождения строки S1 на строку S2»

textual
Листинг программы
void main()
{
char text[Nmax], text[Nmax], text[Nmax], text[Nmax];
int L, K;
printf_s(...);
gets_s(text);
printf_s(...);
gets_s(S1);
printf_s(...);
gets_s(S2);
 
char *S = strstr(text, S1);
 
while (S)
{
L = strlen(text);
K = L - strlen(S);
strcpy_s(A, S+ strlen(S1));
text[K] = '\0';
strcat_s(text, S2);
strcat_s(text, A);
S = strstr(text, S1);
}
 printf_s("...%s", text);
 
_getch();
}

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

  1. Программа начинается с ввода строки text с помощью функции gets_s().
  2. Затем вводится строка S1 с помощью функции gets_s().
  3. Вводится строка S2 с помощью функции gets_s().
  4. Строка S инициализируется значением text, на которое следует первая вставка S1.
  5. Затем в цикле while происходит следующее:
    • Вычисляется длина строки text с помощью функции strlen().
    • Вычисляется индекс конца строки S1 с помощью вычитания длины S1 из длины text.
    • Строка A инициализируется значением S плюс длина S1.
    • В строке text заменяется подстрока S1 на строку S2 с помощью функции strcat_s().
    • В строку text вставляется строка A с помощью функции strcat_s().
    • Строка S обновляется значением text с помощью функции strstr().
  6. Выводится строка text с помощью функции printf_s().
  7. Программа завершается с помощью функции _getch().

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


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

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

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