c – Exercise 2-3. Write an alternate version of squeeze(s1, s2) which deletes each character in s1 which matches any character in the string s2. K&R

I’ve been trying to create an alternate function ‘squeeze(s1, s2)’ and well, I have taken my time to do it, but I’m actually I’m not 100% sure If the solution I have done is correct. Although I test it, and everything it works fine and gives me the result I expect. But sometimes I start to wonder If I have written the code correctly or IF I have implemented it correctly, sometimes I worry that the code does not make any sense. I try to do ‘algorithms’ among other things that help me visualize what I want to do. But yes, I would like to know If there is something that I should change in my code? or If there is any suggestions to improve it?

#include <stdio.h>
#define MAX_LEN 1024
#define EXIT_SUCCESS 0
#define MSG "Read a single Char or String: "

int get_line(char (), int);
void squeeze(char (), char ());

enum {
} state;

int main() {
    char s1(MAX_LEN), s2(MAX_LEN);

    get_line(s1, MAX_LEN);
    printf("%s", MSG);
    get_line(s2, MAX_LEN);

    squeeze(s1, s2);
    printf("%sn", s1);

    return (EXIT_SUCCESS);

int get_line(char s(), int lim) {
    int c, i;

    i = 0;
    while (i < lim-1) {
        if ((c = getchar()) == EOF || c == 'n')
        s(i++) = c;
    s(i) = '';
    return (i);

void squeeze(char s1(), char s2()) {
    int i, j, k;
    k = 0;

    for (i = 0; s1(i) != ''; i++) {
        state = OFF;

        for (j = 0;s2(j) != ''; j++)
            if (s1(i) == s2(j)) {
                state = ON;

        if (!state) {
            if (s2(j) == '') {
                s1(k++) = s1(i);
    s1(k) = '';