Работа со строками: в тексте поменять местами заданные словосочетания - C (СИ)

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

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

помогите пожалуйста, нужно написать программу, которая нужно ввести текст, ввести 2 словосочетания и в тексте поменять местами словосочетания

Решение задачи: «Работа со строками: в тексте поменять местами заданные словосочетания»

textual
Листинг программы
  1. {
  2.   char text[50],slovo1[25],slovo2[25];
  3.   char *arr2;
  4.   char *arr3;
  5.    
  6.     printf("\nвведите строку\n");
  7.             getchar();
  8.             gets(text);
  9.             printf("Слово 1: \n");
  10.             gets(slovo1);
  11.             j=strlen(slovo1);
  12.             printf("Слово 2: \n");
  13.             gets(slovo2);
  14.             n=strlen(slovo2);
  15.            
  16.            
  17.     for(i=0;i<strlen(text);i++)
  18.         {
  19.         arr2=(char*) malloc(i*sizeof(int));
  20.         arr2 = strstr(text,slovo1);    
  21.         arr3=(char*) malloc(i*sizeof(int));
  22.         arr3 = strstr(text,slovo2);    
  23.         }
  24.     for(i=0;i<strlen(text);i++)
  25.     {
  26.         if // тут хотел написать замену
  27.     }
  28.  }
  29.                          
  30.             printf("\n%s\n", text);
  31.     fflush(stdin);

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

  1. Объявлены массивы для хранения текста и двух слов: text[50], slovo1[25], slovo2[25].
  2. Создаются две переменные типа char* для хранения указателей на подстроки: arr2, arr3.
  3. Выводится приглашение для ввода строки.
  4. Считывается строка с помощью функции gets(text).
  5. Выводится приглашение для ввода первого слова.
  6. Считывается первое слово с помощью функции gets(slovo1).
  7. Вычисляется длина первого слова с помощью функции strlen(slovo1).
  8. Выводится приглашение для ввода второго слова.
  9. Считывается второе слово с помощью функции gets(slovo2).
  10. Вычисляется длина второго слова с помощью функции strlen(slovo2).
  11. В цикле for начиная с i=0 и до strlen(text) ищутся подстроки первого и второго слова в тексте с помощью функции strstr(text,slovo1) и strstr(text,slovo2).
  12. В каждой итерации цикла выделяется память под строку с помощью функции malloc(i*sizeof(int)).
  13. Если слово найдено, то указатель на подстроку сохраняется в соответствующей переменной arr2 или arr3.
  14. После завершения цикла, в цикле for начиная с i=0 и до strlen(text) происходит замена подстрок.
  15. Выводится исходная строка с помощью функции printf(\n%s\n, text).
  16. Очищается буфер ввода с помощью функции fflush(stdin).

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


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

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

6   голосов , оценка 4.333 из 5

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

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

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