Buenas,
Estoy intentado hacer un programa en C++ (una práctica de la uni) en el que yo le entro un texto y el programa encuentra todos los anagramas (def: Palabra o sentencia que resulta de esta transposición de letras; p. ej., de amor, Roma, o viceversa) de la primera palabra:
Ejemplo: (el texto no tiene sentido pero es para que se entienda)
"Linux, utilizando linux podemos hacer lo mismo que con lunix, es decir: ulinx"
Aquí el programa me devolveria:
Anagrama de linux: linux
Anagrama de linux: linux
Anagrama de linux: lunix
Anagrama de linux: ulinx
Hay un total de 4 anagramas.
Bien, el caso es que consigo obtener las palabras por separado, sin los espacios en blanco, saltar de palabra en palabra...
Lo que no tengo idea de como hacerlo es ver si una palabra es anagrama de otra.
De momento lo unico que he hecho es:
Si las dos palabras tienen el mismo numero de letras empezamos el programa, sino, ya no pueden ser anagrama.
Lo que ya no se es como montarmelo para saber si tienen las mismas letras, osea:
abcc y cdca ---> anagrama
He probado varias cosas:
Mirar si la primera letra del primer vector esta en el segundo, si la segunda tambien... pero no es bueno.
He intentado hacer un subprograma para contar el numero de letras iguales a las de la posicion 0 del vector1, a la de la posicion 1 del vector1... y compararlo con el segundo vector pero tengo problemas y no encuentro un buen metodo para hacerlo.
¿Teneis alguna idea de como ver si dos palabras con la misma cantidad de letras son anagrama?