Заменить в строке 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();
- }
Объяснение кода листинга программы
- Программа начинается с ввода строки
text
с помощью функцииgets_s()
. - Затем вводится строка
S1
с помощью функцииgets_s()
. - Вводится строка
S2
с помощью функцииgets_s()
. - Строка
S
инициализируется значениемtext
, на которое следует первая вставкаS1
. - Затем в цикле while происходит следующее:
- Вычисляется длина строки
text
с помощью функцииstrlen()
. - Вычисляется индекс конца строки
S1
с помощью вычитания длиныS1
из длиныtext
. - Строка
A
инициализируется значениемS
плюс длинаS1
. - В строке
text
заменяется подстрокаS1
на строкуS2
с помощью функцииstrcat_s()
. - В строку
text
вставляется строкаA
с помощью функцииstrcat_s()
. - Строка
S
обновляется значениемtext
с помощью функцииstrstr()
.
- Вычисляется длина строки
- Выводится строка
text
с помощью функцииprintf_s()
. - Программа завершается с помощью функции
_getch()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д