fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. // szyfr Cezara dla jednego znaku (małe litery)
  5. char szyfruj_znak(char znak, int klucz) {
  6. if (znak >= 'a' && znak <= 'z') {
  7. int litera = znak - 'a';
  8. int nowa = (litera + klucz) % 26;
  9. return char(nowa + 'a');
  10. }
  11. return znak; // spacje i inne znaki bez zmian
  12. }
  13.  
  14. // szyfrowanie całego tekstu Cezarem
  15. string szyfruj_cezar(string tekst, int klucz) {
  16. string wynik = "";
  17. for (int i = 0; i < tekst.size(); i++)
  18. wynik += szyfruj_znak(tekst[i], klucz);
  19. return wynik;
  20. }
  21.  
  22. // zamiana liter parami
  23. string szyfr(string s) {
  24. string t = "";
  25. for (int i = 0; i < s.size() - 1; i += 2)
  26. t = t + s[i+1] + s[i];
  27.  
  28. if (s.size() % 2 != 0)
  29. t = t + s[s.size()-1];
  30.  
  31. return t;
  32. }
  33.  
  34. int main() {
  35. string tekst1 = "kotwica";
  36. string tekst2 = "szyfrowanie jest trudne";
  37.  
  38. // najpierw Cezar (np. klucz = 3), potem zamiana parami
  39. cout << szyfr(szyfruj_cezar(tekst1, 3)) << endl;
  40. cout << szyfr(szyfruj_cezar(tekst2, 3)) << endl;
  41.  
  42. return 0;
  43. }
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
rnzwfld
cvibrudzlq hhmwvw xuqgh