I have program to remove the similar words from string but this program only removing at once word not a repeating words.
For example input:
sabunkerasmaskera kera
and should an output:
sabunmas
This my code:
#include <stdio.h>
#include <string.h>
void remove(char x[100], char y[100][100], char words[100]) {
    int i = 0, j = 0, k = 0;
    for (i = 0; x[i] != '\0'; i++) {
        if (x[i] == ' ') {
            y[k][j] = '\0';
            k++;
            j = 0;
        } else {
            y[k][j] = x[i];
            j++;
        }
    }
    y[k][j] = '\0';
 
    j = 0;
    for (i = 0; i < k + 1; i++) {
        if (strcmp(y[i], kata) == 0) {
            y[i][j] = '\0';
        }
    }
 
    j = 0;
    
    for (i = 0; i < k + 1; i++) {
        if (y[i][j] == '\0')
            continue;
        else
            printf("%s ", y[i]);
    }
    printf ("\n");
}
int main() {
    char x[100], y[100][100], kata[100];
    printf ("Enter word:\n");
    gets(x);
 
    printf("Enter word to remove:\n");
    gets(words);
    
    remove(x, y, words);
    
    return 0;
}
My program output its:
sabunkerasmaskerara
and that should not be the case. Maybe I need your opinion to fixed this program and also I need help to make it better.
 
    