Salve , sto cercando di implementare il codice del seguente esercizio dove devo confrontare due stringhe:
/*Esercizio 1. Si scriva in C++ un programma completo opportunamente modularizzato in funzioni che, lette da
input due parole di uguale lunghezza, verifichi se sono l’una anagramma dell’altra. Due parole sono una
l’anagramma dell’altra se contengono le stesse lettere ma in ordine diverso. Esempio: La parola locandiera è un
anagramma della parola calendario.
Se le due parole non sono una l’anagramma dell’altra, si consideri la prima inserita da input e se ne costruisca un
anagramma permutando in modo casuale le lettere di cui è composta (non importa se la parola ottenuta non è di
senso compiuto). Esempio: se da input sono state inserite le parole casa e sala, si consideri la parola casa e si
permutino in modo casuale le sue lettere. Dopo questo procedimento si potrebbe ad esempio ottenere la parola
asca.
Bonus (Lo svolgimento di questa parte comporta un bonus di massimo un punto sul voto finale). Si verifichi se le due parole
lette da input sono l’una l’inversa dell’altra, ossia se se ne legge una da sinistra verso destra e l’altra da destra verso
sinistra, risultano uguali. Esempio: rosa e asor sono l’una l’inversa dell’altra.*/
Ho pensato di utilizzare la funzione STRCMP per fare le comparazione , ma mi dice sempre che a è diverso di b anche se metto le stesse parole la input.
grazie
codice:
# include <iostream>
# include <cstring>
using namespace std;
const int n=4;
void verifica (char [], char []);
void inserisciParola (char [],char);
int main ()
{
char a[n];
char b[n];
char carattere;
cout<<"verifichiamo se due cparole sono una anagramma di un altra:"<<endl;
cout<<"inserisci la prima parola:"<<endl;
inserisciParola (a, carattere);
cout<<"inserisici la seconda parola:"<<endl;
inserisciParola (b, carattere);
cout<<endl;
if (strcmp(b,a) == 0)
cout << "a ed b sono uguali!" << endl;
else
cout << "a e' diversa da b" << endl;
return 0;
}
void inserisciParola (char a[],char carattere)
{
for (int i=0; i<n; i++)
{
cin>>carattere;
a[i]=carattere;
}
}