怎么剔除s1字符串里与s2一致的字符?

如何剔除s1字符串里与s2一致的字符??
the C programming language
习题2-4
剔除s1字符串里与s2一致的字符
为什么我的代码里打印出来的s1字符串没有变化呢?


#include <stdio.h>

int main(int argc, char *argv[])
{
char s1[100],s2[100];
int i,j,k,q;
printf("please enter string s1!\n");
gets(s1);
printf("please enter string s2!\n");
gets(s2);
for(i=0;s1[i]!='\0';i++){
for(j=0;s2[j]!='\0'&&s2[j]!=s1[i];j++)
{
}
if (s1[i]==s2[j]){
printf("%d  ",i);
for(k=i;s1[k]!='\0';k++){
s1[k]=s1[++k];
k--;
}

}
}
puts(s1);
return 0;
}


------解决方案--------------------
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<errno.h>
#include<string.h>
#include<sys/types.h>


#define STR_SIZE 512


int main(int argc, char* argv[])
{
  
    char str[STR_SIZE]     = {0};
    char substr[STR_SIZE]  = {0};
    char deststr[STR_SIZE] = {0};
    char *phead = NULL;
    char *ptail = NULL;
    
    
    printf("input the first string!\n");
    scanf("%s", str);
    
    printf("input the second string!\n");
    scanf("%s", substr);
    
    if((phead = strstr(str, substr)) != NULL)
    {
        strncpy(deststr, str, phead-str);
        strcpy(deststr+strlen(deststr), phead+strlen(substr));
        printf("the string:%s, after delete the substr:%s, the left string:%s\n", str, substr, deststr);
    }
    else
    {
        printf("the second string is not a sub string int the first string!\n");
    }
    
    return 0;
}

------解决方案--------------------
仅供参考
#include <stdio.h>
#include <string.h>
#include <locale.h>
char s[256];
char *p;
int r,n,i;
int main() {
    setlocale(LC_ALL,"chs");
    while (1) {
        printf("请输入一行文字(空行结束),\"%%20\"将替换为\" \",\"你懂得\"将替换为\"XXXXXX\":\n");
        fgets(s,256,stdin);
        if ('\n'==s[0]) break;
        p=s;
        while (1) {
            p=strstr(p,"%20");
            if (p) {
                memmove(p+1,p+3,strlen(p)-3+1);
                p[0]=' ';
            } else break;
        }
        p=s;
        while (1) {
            p=strstr(p,"你懂得");
            if (p) {
                memmove(p+6,p+6,strlen(p)-6+1);
                for (i=0;i<6;i++) p[i]='X';
            } else break;
        }
        printf("%s",s);
    }
    return 0;
}
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//abcdefg%20helloworld%20something.pdf
//abcdefg helloworld something.pdf
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//这是测试文字你懂得,在这个你懂的地方,就得做你懂得的事
//这是测试文字XXXXX,在这个你懂的地方,就得做XXXXX的事
//请输入一行文字(空行结束),"%20"将替换为" ","你懂得"将替换为"XXXXXX":
//