fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <cctype>
  4.  
  5. // Funkcja szyfrująca szyfrem Cezara
  6. std::string szyfrCezara(const std::string &tekst, int przesuniecie) {
  7. std::string wynik;
  8. wynik.reserve(tekst.size());
  9.  
  10. for (char znak : tekst) {
  11. if (std::isalpha(static_cast<unsigned char>(znak))) {
  12. char baza = std::islower(static_cast<unsigned char>(znak)) ? 'a' : 'A';
  13. // Przesunięcie w zakresie 0-25
  14. char zaszyfrowany = static_cast<char>(
  15. (znak - baza + przesuniecie + 26) % 26 + baza
  16. );
  17. wynik.push_back(zaszyfrowany);
  18. } else {
  19. // Znaki niealfabetyczne pozostają bez zmian
  20. wynik.push_back(znak);
  21. }
  22. }
  23. return wynik;
  24. }
  25.  
  26. int main() {
  27. // Dane wejściowe
  28. std::string wyraz1 = "poczekajnamnie";
  29. std::string wyraz2 = "poufnytekst";
  30. int przesuniecie = 3; // klasyczne przesunięcie Cezara
  31.  
  32. // Szyfrowanie
  33. std::string szyfr1 = szyfrCezara(wyraz1, przesuniecie);
  34. std::string szyfr2 = szyfrCezara(wyraz2, przesuniecie);
  35.  
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0.01s 5324KB
stdin
Standard input is empty
stdout
Standard output is empty