Язык Си.Как удалить определенный текст?

Здравствуйте, помогите сделать пожалуйста

есть текстовый файл, хочу чтоб из него удалились все предложение которые заканчиваются на восклицательный знак
я сделал только то что он удаляет сам знак, как сделать чтоб удалил предложение?

#include <stdio.h>
#include <stdlib.h>
 
    int main(void)
    {
        int c = 0;
        const unsigned char discard = '!';
        const char *file_name = "ex1.txt";
        FILE *input_file = NULL, *output_file = NULL;
    
        if (!(input_file = fopen(file_name,"r")) || !(output_file = fopen("ex2.txt","w")))
        {
           fprintf(stderr,"error handling"); 
            exit(EXIT_FAILURE);
        }
    
        while ((c = fgetc(input_file)) != EOF)
        {
            if (c != discard)
            {
                fputc(c,output_file);
            }
        }
 
        fclose(input_file);
            
        exit(EXIT_SUCCESS);
    }