Работа со строками: в тексте поменять местами заданные словосочетания - C (СИ)
Формулировка задачи:
помогите пожалуйста, нужно написать программу, которая нужно ввести текст, ввести 2 словосочетания и в тексте поменять местами словосочетания
Решение задачи: «Работа со строками: в тексте поменять местами заданные словосочетания»
textual
Листинг программы
{ char text[50],slovo1[25],slovo2[25]; char *arr2; char *arr3; printf("\nвведите строку\n"); getchar(); gets(text); printf("Слово 1: \n"); gets(slovo1); j=strlen(slovo1); printf("Слово 2: \n"); gets(slovo2); n=strlen(slovo2); for(i=0;i<strlen(text);i++) { arr2=(char*) malloc(i*sizeof(int)); arr2 = strstr(text,slovo1); arr3=(char*) malloc(i*sizeof(int)); arr3 = strstr(text,slovo2); } for(i=0;i<strlen(text);i++) { if // тут хотел написать замену } } printf("\n%s\n", text); fflush(stdin);
Объяснение кода листинга программы
- Объявлены массивы для хранения текста и двух слов:
text[50]
,slovo1[25]
,slovo2[25]
. - Создаются две переменные типа
char*
для хранения указателей на подстроки:arr2
,arr3
. - Выводится приглашение для ввода строки.
- Считывается строка с помощью функции
gets(text)
. - Выводится приглашение для ввода первого слова.
- Считывается первое слово с помощью функции
gets(slovo1)
. - Вычисляется длина первого слова с помощью функции
strlen(slovo1)
. - Выводится приглашение для ввода второго слова.
- Считывается второе слово с помощью функции
gets(slovo2)
. - Вычисляется длина второго слова с помощью функции
strlen(slovo2)
. - В цикле
for
начиная сi=0
и доstrlen(text)
ищутся подстроки первого и второго слова в тексте с помощью функцииstrstr(text,slovo1)
иstrstr(text,slovo2)
. - В каждой итерации цикла выделяется память под строку с помощью функции
malloc(i*sizeof(int))
. - Если слово найдено, то указатель на подстроку сохраняется в соответствующей переменной
arr2
илиarr3
. - После завершения цикла, в цикле
for
начиная сi=0
и доstrlen(text)
происходит замена подстрок. - Выводится исходная строка с помощью функции
printf(
\n%s\n, text)
. - Очищается буфер ввода с помощью функции
fflush(stdin)
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д