#include <iostream>
#include <string.h>
#include <cstdlib>
using namespace std;
void szyfrujCezar(char*);
void deszyfrujCezar(char*);
void szyfrujROT(char*);
void deszyfrujROT(char*);
void kodowanie(char *napis);
int main()
{
int liczba;
cout << "Wybierz Szyfr: \n" << endl;
cout << "1. Szyfr Cezara" << endl;
cout << "2. ROT-13" << endl;
cout << "3. Szyfr Przestawieniowy" << endl;
switch(liczba)
{
case 1:
void szyfrujCezar(char*);
void deszyfrujCezar(char*);
break;
case 2:
void szyfrujROT(char*);
void deszyfrujROT(char*);
break;
case 3:
void kodowanie(char *napis);
break;
}
}
void szyfrujCezar(char* s)
{
for(int i=0;i<strlen(s);i++)
{
s [i] = tolower(s [i]) - 97;
if((s [i]>=0)&&(s [i]<=26)) s [i] = (s [i] + 3) % 26;
s [i] = s [i] + 97;
}
};
void deszyfrujCezar(char* s)
{
for(int i=0;i<strlen(s);i++)
{
s [i] = tolower(s [i]) - 97;
if((s [i]>=0)&&(s [i]<=26)) s [i] = (s [i]+26 - 3) % 26;
s [i] = s [i] + 97;
}
};
int main2()
{
char* napis=new char[256];
cout << "Podaj tekst do zaszyfrowania / odkodowania:" << endl;
cin.getline(napis,255,'\n');
char c=0;
while(1)
{
cout << "Chcesz zaszyfrowac czy odszyfrowac [Z/O]? ";
cin.get(c);
if((c=='z')||(c=='Z')||(c=='o')||(c=='O')) break;
else
{
cout << "Nieprawidlowy wybor!" << endl;
cin.get(c);
}
}
cout << "Napis po ";
if((c=='z')||(c=='Z'))
{
cout << "zaszyfrowaniu:" << endl;
szyfrujCezar(napis);
}
else if((c=='o')||(c=='O'))
{
cout << "odszyfrowaniu:" << endl;
deszyfrujCezar(napis);
}
cout << napis << endl;
system("pause");
return 0;
}
void szyfrujROT(char* s)
{
for(int i=0;i<strlen(s);i++)
{
s [i] = tolower(s [i]) - 97;
if((s [i]>=0)&&(s [i]<=26)) s [i] = (s [i] + 13) % 26;
s [i] = s [i] + 97;
}
};
void deszyfrujROT(char* s)
{
for(int i=0;i<strlen(s);i++)
{
s [i] = tolower(s [i]) - 97;
if((s [i]>=0)&&(s [i]<=26)) s [i] = (s [i]+26 - 13) % 26;
s [i] = s [i] + 97;
}
};
int main3()
{
char* napis=new char[256];
cout << "Podaj tekst do zaszyfrowania / odkodowania:" << endl;
cin.getline(napis,255,'\n');
char c=0;
while(1)
{
cout << "Chcesz zaszyfrowac czy odszyfrowac [Z/O]? ";
cin.get(c);
if((c=='z')||(c=='Z')||(c=='o')||(c=='O')) break;
else
{
cout << "Nieprawidlowy wybor!" << endl;
cin.get(c);
}
}
cout << "Napis po ";
if((c=='z')||(c=='Z'))
{
cout << "zaszyfrowaniu:" << endl;
szyfrujROT(napis);
}
else if((c=='o')||(c=='O'))
{
cout << "odszyfrowaniu:" << endl;
deszyfrujROT(napis);
}
cout << napis << endl;
system("pause");
return 0;
}
void kodowanie(char *napis)
{
int dl = strlen(napis);
for(int i=0; i<dl-1; i+=2)
{
char pom = napis[i];
napis[i] = napis[i+1];
napis[i+1] = pom;
}
}
int main4()
{
char napis[100];
cout<<"Podaj napis: ";
cin.getline(napis, 100);
kodowanie(napis);
cout<<"Szyfr: ";
cout<<napis<<endl;
kodowanie(napis);
return 0;
}