>>360
for (i=j=0; str[i] != '\0'; i++)
{
 if (str[i] != c)
 {
  str[j] = str[i];
  j++;
 }
}

見やすくなったし、バグの原因になりえなくなったかな?