Работа со строками: в тексте поменять местами заданные словосочетания - 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);

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

  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
Похожие ответы