检测数组s1[i]和s2[i]是否相等,相等则删除si的

这段函数想让他检测s1和s2的是否相等,相等就删掉;请问这样做可行吗?目前没法检查,不过感觉理论和结构无误
求一个聪明帅气可爱多金头发旺盛美丽聪慧机智宽容友好善良的大佬回答

int squeeze(int s1[], int s2[]) {
 int i, j, c;
 for (i = 0, j = 0; s1[i] != '\0' && s2[j] != '\0'; j++, i++) {
  c=s1[i] ;
  if (s1[i] == s2[i]) {
   --i;
  }
  else {
   s1[j] = c;
  }
 }
}

可能还缺一个,删除多余的元素?

s1[i] != '\0' && s2[j] != '\0' 这么写不对,char数组才这么写。你是要删除两个数组中的相同数据吗?只要相同,s1和s2中都删还是只从1个数组中删?
参考如下代码:

//n1是数组s1元素个数,n2是数组s2中元素个数,如果两个数组有同样多的数据,可以直传1个长度
int squeeze(int s1[],int n1,int s2[],int n2) 
{
    int i,j;
    for(i=0;i<n1 && i<n2;)
    {
        if (s1[i]== s2[i])
        {
            //从s1中删除
            for(j=i;j<n1-1;j++)
                s1[j] = s1[j+1];
            //从s2中删除
            for(j=i;j<n2-1;j++)
                s2[j] = s2[j+1];
        }else
            i++;
    }
    return 1;
}