Esto esta mal:
Usas n en lugar de m. El resultado puede ser cualquiera ya que n ni siquiera tiene valor hasta que se ejecute el segundo bucle del que saldrá con un valor igual al largo de la segunda cadena.
Además no hace lo que pide ya que ¿y si el carácter es "0"?
El truco es que si encuentra uno repetido en su lugar copie el siguiente y así hasta el final y que en el último copie '\0'.
Algo asi:
Código C:
Ver originalvoid squeezeb(char s[], char t[])
{
int n, m, j;
for(m = 0; t[m] != '\n'; m++)
{
for(n = 0; s[n] != '\n'; n++)
{
if(s[n] == t[m])
{
for(j = n; s[j] != '\n'; j++)
s[j] = s[j+1];
s[j] = '\0';
if (s[n] == '\n') break;
}
}
}
}
Lo he escrito desde el móvil basándome en tu propio código así que puede haber algún fallo pero esa es la idea.