Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/09/2015, 19:13
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 2 meses
Puntos: 3
Respuesta: Eliminar Caracteres Repetidos en S1 de S2

Esto esta mal:
Código C:
Ver original
  1. for(m = 0; t[n] != '\n'; m++)
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 original
  1. void squeezeb(char s[], char t[])
  2. {
  3.      int n, m, j;
  4.      
  5.      for(m = 0; t[m] != '\n'; m++)
  6.      {
  7.      
  8.       for(n = 0; s[n] != '\n'; n++)
  9.       {      
  10.            if(s[n] == t[m])
  11.            {
  12.                for(j = n; s[j] != '\n'; j++)
  13.                     s[j] = s[j+1];
  14.                s[j] = '\0';
  15.                if (s[n] == '\n') break;
  16.            }
  17.            
  18.       }
  19.      
  20.      }
  21. printf("String 1\n");
  22. puts(s);
  23. printf("String 2 \n");
  24. puts(t);    
  25.  
  26. }

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.

Última edición por aguml; 19/09/2015 a las 19:49