char szyfruj_znak( char c, int i )
{
//alfabet ma 26 znaków, jeżeli przesuniemy literę o 26, to tak naprawdę przesuwamy ją o 0, jeżeli o 27 to o 1, jeżeli o 28 to o 2 itd. Dlatego wykonujemy operację modulo, ponieważ nie ma sensu przesuwać literki o liczbę większą niż 25
i = i % 26;
//do aktualnej literki dodajemy przesunięcie
c = c + i;
// 'a' = 96, 'z' = 122, jeżeli po dodaniu otrzymamy znak większy od 122 (większy od z), to musimy odjąć 27 (ilość liczb w alfabecie), dzięki temu alfabet się "zapętli =" (a,b,c,...,x,y,z,a,b,c,...)
if( c > 122 )
c = c - 26;
return c;
}
int main()
{
char znak;
int przesuniecie;
cout << "podaj znak: ";
cin >> znak;
cout << "podaj przesuniecie: ";
cin >> przesuniecie;
cout << znak << "+" << przesuniecie << "=" << szyfruj_znak( znak, przesuniecie );
}
W razie pytań zachęcam do ich zadawania.