Aqui tienes un codigo que funciona
Código C:
Ver originalint anagrama (char *cad1, char *cad2)
{
int i, j, num_aciertos=0;
char cad_aux[10];
memset (cad_aux
, 0, sizeof(cad_aux
));
return 1;
for (i
=0; i
<strlen(cad1
); i
++) {
for (j
=0; j
<strlen(cad_aux
); j
++) {
if (cad1[i] == cad_aux[j])
{
cad_aux[j] = '#';
num_aciertos++;
}
}
}
if (num_aciertos
== strlen (cad_aux
)) return 0;
else
return 1;
}
Lo que hace a la hora de comparar es buscar cada letra de la primera palabra en la segunda, y cuando la encuentra la reemplaza por el caracter '#' (si una palabra tiene 2 'a' la otra tambien tiene que tener 2 'a') y aumenta en contador de aciertos.
Despues de comparar todas las letras si la longitud de la palabra coincide con el numero de aciertos es que es un anagrama.
jamon->jamon->jamon->jamon->jamon->jamon
monja->mon#a->mon##->#on##->##n##->#####