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

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

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

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

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

textual
Листинг программы
  1. void main()
  2. {
  3. char text[Nmax], text[Nmax], text[Nmax], text[Nmax];
  4. int L, K;
  5. printf_s(...);
  6. gets_s(text);
  7. printf_s(...);
  8. gets_s(S1);
  9. printf_s(...);
  10. gets_s(S2);
  11.  
  12. char *S = strstr(text, S1);
  13.  
  14. while (S)
  15. {
  16. L = strlen(text);
  17. K = L - strlen(S);
  18. strcpy_s(A, S+ strlen(S1));
  19. text[K] = '\0';
  20. strcat_s(text, S2);
  21. strcat_s(text, A);
  22. S = strstr(text, S1);
  23. }
  24.  printf_s("...%s", text);
  25.  
  26. _getch();
  27. }

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

  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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы