Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Jedna od metoda za šifriranje poruka za šifriranje koristi kljuc koji postavlja rijec
- dutine m (m<10) u kojoj su sva slova razlicita. Alfabetski poredak slova u toj rijeci
- predstavlja numericki oblik kljuca za šifriranje.
- Poruka koja se šifrira ispisuje se kao niz znakova bez razmaka po redovima u tablicu
- koja ima m stupaca. Ukoliko na kraju ostane slobodnih mjesta, dodaju se redom slova
- engleskog alfabeta. Šifrirana poruka se dobija zapisujuci ispisani tekst ali po stupcima i to u
- poretku koj je odreCen numerickim oblikom kljuca.
- Slova DT, LJ i NJ se smatraju kao parovi slova D i Z, L i J, odnosno N i J. U
- porukama nema slova C, C, Ð, Š, T. Tako se pri šifriranju smatra da LJETO ima 5 slova (L, J,
- E, T, O).
- Treba napisati program koji ce za dani kljuc i ocitanu poruku ispisati šifriranu poruku.
- Ulazni podaci
- S tastature se ucitava u jednom redu kljucna rijec maksimalne dutine 9 slova, u kojoj
- se slova ne ponavljaju, a u drugom redu se ucitava poruka koju telimo šifrirati. Sva slova, i u
- kljucnoj rijeci i u poruci koju šifriramo, su mala slova engleskog alfabeta. U poruci nema
- razmaka.
- Izlazni podaci
- Na ekranu se ispisuje šifrirana poruka, takoCe malim slovima i bez razmaka. */
- #include <iostream>
- using namespace std;
- main()
- {
- char a[100][100];
- string s, k;
- cin >> s >> k;
- string p = s;
- int n = s.length();
- int m = k.length()/n;
- if (k.length()%n!=0)
- m = m + 1;
- for (int i=0; i<n - k.length()%n; i++)
- k[k.length()+i] = 97+i;
- int l = 0;
- for (int i=0; i<m; i++)
- for (int j=0; j<n; j++)
- {
- a[i][j] = k[l];
- l++;
- }
- for (int i=n-2; i>=0; i--)
- for (int j=0; j<=i; j++)
- if (s[j] > s[j+1])
- {
- char t = s[j];
- s[j] = s[j+1];
- s[j+1] = t;
- }
- // cout << s << endl;
- string res = "";
- for (int i=0; i<s.length(); i++)
- {
- for (int j=0; j<p.length(); j++)
- if (s[i] == p[j])
- {
- for (int k=0; k<m; k++)
- res = res + a[k][j];
- }
- }
- cout << res << endl;
- /*
- // stampanje ono kako izgleda
- for (int i=0; i<m; i++)
- { for (int j=0; j<n; j++)
- cout << a[i][j] << " ";
- cout << endl;
- } */
- system ("PAUSE");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement