#include #include #include using std::cin; using std::cout; using std::endl; using std::string; string lue_salausavain() { string tulos(""); int maara = 0; char merkki; cout << "Syötä salausavain: " << endl; while (maara < 26) { merkki = cin.get(); if (merkki >= 'a' && merkki <= 'z') { tulos += merkki; maara += 1; } } return tulos; } bool tarkista_salausavain(string avain) { char merkki; bool ok = true; for (merkki = 'a'; merkki <= 'z'; merkki++) { if (avain.find(merkki) == string::npos) { ok = false; cout << "Virhe: avaimessa ei esiintynyt kirjainta " << merkki << "." << endl; } } return ok; } string salaa(string avain, string merkkijono) { string tulos(""); unsigned int i; int indeksi; for (i = 0; i < merkkijono.length(); i++) { indeksi = merkkijono[i] - 'a'; tulos += avain[indeksi]; } return tulos; } int main() { std::string avain = lue_salausavain(); if (!tarkista_salausavain(avain)) { return EXIT_FAILURE; } bool jatka = true; char vastaus = 0; string sana(""); while (jatka) { cout << "Syötä salattava sana: "; cin >> sana; cout << salaa(avain, sana) << endl; vastaus = 0; // EOF:n tullen ei jatketa cout << "Haluatko salata uuden sanan? "; cin >> vastaus; jatka = (vastaus == 'k') || (vastaus == 'K'); } return EXIT_SUCCESS; }