Purtroppo non conosco la multimap, e sono convinto che sarebbe più semplice, però vorrei riuscire a capire perchè non riesco a farlo in questo modo.
Così non mi da nessun anagramma, quindi il controllo non va bene, ma in altri programmi che ho fatto questo controllo andava bene, non capisco come mai.codice:#include <iostream> #include <string> #include <fstream> using namespace std ; fstream input; void anagramma(string radice, string s, int livello) { char parola[30]; string q; for (int i = 0; i < s.size(); i++) { string t = radice + s[i]; if (t.size() == livello) { while(input.eof()){ input.getline(parola, 30); q.assign(parola); if(q.compare(t)==0) cout << t << endl ; } } anagramma(t, s.substr(0, i) + s.substr(i + 1), livello); } } void calcola_anagrammi(string s) { anagramma("", s, s.size()); } int main() { string my_string; input.open("words.italian.txt", ios::in); cout << "Inserire la stringa da anagrammare : "; cin >> my_string; calcola_anagrammi(my_string); return 0 ; }

Rispondi quotando