c语言怎样输出字符串?

请问这个程序为什么没法输出?

 #include<stdio.h>
void squeeze(char s1[],char s2[])
{
    int i, j, k = 0;;
    int DO =0;
    for (i = 0; s1[i] != '\0'; i++)
    {
        for(j = 0; s2[j] != '\0'; j++)
        {
            if (s1[i] == s2[j])
            {
                DO = 1;
            }
            if(!DO)
            {
                s1[k++] = s1[i];  
            }
        }
    }
    s1[j] = '\0';
}
int main()
{
    char s1[] = "4567yuljf";
    char c1[] = "ljf";
    squeeze(s1,c1);
    printf("%s",s1[1]);
}

改成这个, 打印字符数组要给的是数组首地址指针, 不是给 s1[1], 这是数组首个元素

 printf("%s",s1);

上面程序我打错了 我想实现的输出结果是去掉ljf的字符串,请问在printf里面应该怎么写?

改成printf("%s",s1);