Дан текст. Преобразуйте текст, удалив слова, в которых есть заданная подстрока. - C (СИ)

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

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

Дан текст. Преобразуйте текст, удалив слова, в которых есть заданная подстрока. Пример: "Кто был ничем, тот станет всем". Подстрока "то". Результат: "был ничем, станет всем". Помогите с алгоритмом, не пойму как удалить всё слово и с помощью сдвига ли? И как распознать слова в котором встречается данная подстрока.

Решение задачи: «Дан текст. Преобразуйте текст, удалив слова, в которых есть заданная подстрока.»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
main()
{
    char stroka[100],slovo[20],podstroka[5];
    int i,j,k;
    k=0;        //индекс в слове
    
    printf("Enter string: ");
    gets(stroka);
    printf("Enter substring: ");
    gets(podstroka);
 
    for(i=0;i<strlen(stroka)+1;i++)   //цикл по всей строке
    {
        if ((stroka[i]!=' ')&&(i!=strlen(stroka)))        //пока не доходим до пробела или конца строки записываем символы как отдельное слово
        {
            slovo[k]=stroka[i];     // пишем слово в массив
            k++;
        }
        else                        //если дошли до пробела 
        {
        if(strstr(slovo,podstroka)==NULL) // ищем подстроку в нашем слове
            {
            for(j=0;j<k;j++)
            printf("%c",slovo[j]);                      //если подстрока не найдена - выводим слово
            printf(" ");
            }
        k=0;
        }
            
    }
    
    printf("\n");
    system("pause");    
}

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

  1. В начале определяются две строки: stroka и podstroka, а также переменная k для хранения индекса в слове.
  2. Пользователю предлагается ввести строку и подстроку.
  3. Затем идет цикл по всем символам входной строки. Если текущий символ не является пробелом и не является последним символом строки, он добавляется в slovo и увеличивается k.
  4. Если текущий символ является пробелом, проверяется наличие подстроки в слове. Если подстрока не найдена, текущее слово выводится на экран.
  5. После обработки всех слов, выводится символ новой строки.
  6. В конце программа ожидает нажатия клавиши pause для завершения работы.

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


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

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

9   голосов , оценка 4.333 из 5
Похожие ответы