c++ szyfr płotkowy, rozmieszczenie liter
Ostatnio zmodyfikowano 2018-10-22 21:44
we3te4 Temat założony przez niniejszego użytkownika |
c++ szyfr płotkowy, rozmieszczenie liter » 2018-10-22 21:04:17 Oto następujący kod szyfru płotkowego. Mam problem ze zrozumieniem tego jak działa rozmieszczenie liter na 'płotku' dziękuję z góry za pomoc. #include <iostream> #include <regex> #include <fstream>
using namespace std;
void Szyfrowanie(){ string tekst; cout<<"Podaj tekst: "; cin>>tekst;
//usuwanie białych znaków z wiadomości //tekst = regex_replace(tekst, regex("\S+"), ""); //regex zajmuje sie wyrazeniamy regularnymi
cout<<"Podaj klucz: "; int klucz; cin>>klucz;
char plotek[klucz][tekst.length()];
//STWORZENIE PUSTEJ TABLICY for(int i=0; i<klucz; i++){ for(int j=0; j<tekst.length(); j++) { plotek[i][j] = '.'; } }
//umieszczanie liter jedna po druegiej w macierzy w zig-zag int row = 0; int check = 0; for(int i=0; i<tekst.length(); i++){ if(check==0){ plotek[row][i]=tekst[i]; row++; if(row==klucz){ check = 1; row--; } } else if(check==1){ row--; plotek[row][i]=tekst[i]; if(row==0){ check=0; row=1; } } } //tworzenie zaszyfrowanego tekstu string Zaszyfrowany = ""; for(int i=0; i<klucz; i++){ for(int j=0; j<tekst.length(); j++){ cout << plotek[i][j]; Zaszyfrowany += plotek[i][j]; } cout<<endl;
} //usunięcie kropek z zaszyfrowanego tekstu Zaszyfrowany = regex_replace(Zaszyfrowany, regex("\\."), ""); cout <<"Zaszyfrowany tekst: " <<endl <<Zaszyfrowany;
//ZAPIS ZASZYFROWANEGO TEKSTU DO PLIKU fstream plik; plik.open("zaszyfrowany.txt",ios::out); plik<<Zaszyfrowany<<endl; plik.close(); plik.clear(); }
int main() { cout<<"1. Szyfruj "<<endl; cout<<"2. Deszyfruj "<<endl; int wybor; cin>>wybor;
if(wybor==1) { cout<<"Szyfrowanie "<<endl; Szyfrowanie(); } else { cout<<"Zly wybor. Sprobuj jeszcze raz. "<<endl; }
return 0; } |
|
pekfos |
» 2018-10-22 21:28:55 Zadaj konkretne pytanie. |
|
we3te4 Temat założony przez niniejszego użytkownika |
odp » 2018-10-22 21:44:19 chciałbym wiedzieć jak działa te rozmieszczenie liter w tzw. 'zig-zag' bo wiem, że gdy zaczynamy w pierwszym i ostatnim rzędzie to jest trochę inaczej niż w środkowych |
|
« 1 » |