char Cezar_Pl(char znak, int klucz) { int i = alfabet_m.find(znak); if(i >= 0 && i < 35) { // Use modulus with the correct size of the alphabet i = (i + klucz) % 35; // Return the character from the appropriate alphabet return alfabet_m[i]; } i = alfabet_w.find(znak); if(i >= 0 && i < 35) { i = (i + klucz) % 35; return alfabet_w[i]; } // If the character is not in any alphabet, return the same character return znak; }
string Cezar(string s, int klucz) { string szyfrogram = ""; for(int i = 0; i < s.size(); i++) { szyfrogram = szyfrogram + Cezar_Pl(s[i], klucz); } return szyfrogram; // Return the encrypted string }
int ZnajdzKlucz() { int Liczniki[35]; for(int i = 0; i < 35; i++) { Liczniki[i] = 0; } string s; ifstream wejscie("tajne.txt"); // Add missing semicolon while(getline(wejscie, s)) { for(int i = 0; i < s.size(); i++) { int j = alfabet_m.find(s[i]); if(j >= 0 && j < 35) { Liczniki[j]++; } else { j = alfabet_w.find(s[i]); // Reuse the same variable if(j >= 0 && j < 35) { Liczniki[j]++; } } } }
wejscie.close();
int klucz = 0; for(int i = 1; i < 35; i++) // Start from i=1 to avoid using an uninitialized variable { if(Liczniki[i] > Liczniki[klucz]) { klucz = i; } } return klucz; // Return the found key }
W wierszu 54/55 powinien być "return 0;"
A w 70 jest niewłaściwy znak, który powinien być usunięty
Reszta jest dobrze