Salve ho da fare il seguente esercizio... inserite due parole da tastiera devo verificare se sono una l'anagramma dell altra... mi da problemi nella funzione di controllo...ecco il codice
#include <iostream>
#include <cstring>
using namespace std;
void riempi(char stringa1[],char stringa2[],char copia1[],char copia2[],char temp) //con questa funzione copio le due stringhe inserite da tastiera
{ // e le ordino in ordine alfabetico
for(int i=0;i<strlen(stringa1);i++)
copia1[i]=stringa1[i];
for(int x=0;x<strlen(stringa2);x++)
copia2[x]=stringa2[x];
for(int i=0;i<strlen(stringa1);i++)
{
for(int x=0;x<strlen(stringa2);x++)
{
if(copia1[i]<copia1[x])
{
temp=copia1[x];
copia1[x]=copia1[i];
copia1[i]=temp;
}
}
}
for(int i=0;i<strlen(stringa1);i++)
{
for(int x=0;x<strlen(stringa2);x++)
{
if(copia2[i]<copia2[x])
{
temp=copia2[x];
copia2[x]=copia2[i];
copia2[i]=temp;
}
}
}
}
bool controllo(char copia1[],char copia2[]) //questa funzione controlla se le due stringhe sono uguali e se si ritorna true
{
for(int x=0;x<strlen(copia1);x++)
for(int i=0;i<strlen(copia2);i++)
if(copia1[x] != copia2[i])
return false;
return true;
}
int main()
{
char temp;
char stringa1[15];
char stringa2[15];
char copia1[15];
char copia2[15];
cout<<"inserisci la parola n. 1 :"<<endl;
cin>>stringa1;
cout<<"inserisci la parola n. 2 :"<<endl;
cin>>stringa2;
riempi(stringa1,stringa2,copia1,copia2,temp);
/*
for(int x=0;x<strlen(stringa1);x++)
cout<<copia1[x];
cout<<endl;
for(int x=0;x<strlen(stringa1);x++)
cout<<copia2[x];
*/
if(controllo(copia1,copia2)==true)
cout<<"anagramma";
else
cout<<"non anagramma";
return 0;
}