Заменить в строке 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()
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д