Version:0.9 StartHTML:0000000105 EndHTML:0000003647 StartFragment:0000000152 EndFragment:0000003613
/******************************************************/
/*************** Isidro Pastor Jorda ******************/
/******************************************************/
/****************** Telematica ************************/
/******************************************************/
/************* Practica 7 Ejercicio 4 *****************/
/******************************************************/

#include <iostream.h>
#include <stdlib.h>
#include <string>

int main()
{

    string palabra1, palabra2;
    int encontrado,i;

    cout << " Programa indicador de palabras anagrama \n";
    cout << " Introduce la primera palabra -> ";
    getline(cin,palabra1);  // leemos las palabras introducidas por teclado
    cout << "\n Introduce la segunda palabra -> ";
    getline(cin, palabra2);


    encontrado = 0; // inicializamos las variables
    i = 0;

    /* Repetiremos el bucle mientras que encontremos las letras de la palabra 1
       en la palabra 2, si no encuentra una letra devolvera un -1 por lo que saldremos
       del bucle y no seran anagramas, pero si terminamos comprobando toda la longitud de
       la palabra1 entonces una sera anagrama de la otra, esta sera otra condicion para
       salir del bucle de comprobaciones */

    while ( ( encontrado != -1 ) && (i <= palabra1.length() ) )
    {
        encontrado = palabra2.find(palabra1[i]); // buscamos el caracter de la entrada i de palabra1 en palabra2
        i++; // incrementamos el contador para posicionarnos en la siguiente posicion del string palabra1
    }

    if ( encontrado == -1) // si hemos salido por no encontrar una letra entonces no son anagramas
        cout << "\n Las palabras no son anagramas \n";
    else  // en caso contrario hemos salido por haber comprobado todas las letras de palabra1 y entonces son anagramas
        cout << "\n Las palabras son anagramas, contienen las mismas letras \n";

    system("PAUSE");
    return 0;
}