Advertisement
Talar97

[JPO] Szyfr Cezara

Apr 4th, 2018
300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.21 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <fstream>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. string szyfrCezara(string lancuch, int p);
  9.  
  10. int main() {
  11.     fstream wejscie, wyjscie;
  12.     string nazwaPliku, linia;
  13.     int p;
  14.    
  15.     cout << "Wprowadz nazwe pliku: "; cin >> nazwaPliku;
  16.     cout << "Podaj przesuniecie: "; cin >> p;
  17.    
  18.     wejscie.open(nazwaPliku.c_str());
  19.     wyjscie.open("wyniki.txt",  ios::out);
  20.            
  21.     if(wejscie.good()){
  22.         while(!wejscie.eof()){
  23.             getline(wejscie, linia);
  24.             linia = szyfrCezara(linia, p);
  25.             wyjscie << linia << endl;
  26.         }
  27.     }  
  28.    
  29.     wejscie.close();
  30.     wyjscie.close();
  31.      
  32.     return EXIT_SUCCESS;
  33. }
  34.  
  35.  
  36. string szyfrCezara(string lancuch, int p){
  37.     string wynik;
  38.     int kod;
  39.     p %= 26;
  40.    
  41.     for(int i=0; i<lancuch.length(); i++){
  42.         lancuch[i] = tolower(lancuch[i]);
  43.         kod = (int)lancuch[i];
  44.         if (kod == 32 - p || kod == 32)
  45.             wynik += kod + p;
  46.         else if(kod > 122 - p)
  47.             wynik += kod + p - 26;
  48.         else if(kod < 97 - p)
  49.             wynik += kod + p + 26;
  50.         else
  51.             wynik += kod + p;
  52.     }
  53.    
  54.     return wynik;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement