Szyfr Cezara na kodach liter
Wskaźniki i napisy w tablicach char - Podstawy C++ (C++)
Szyfr Cezara przesuwa każdą literę o tyle samo miejsc w alfabecie: przy przesunięciu 3 a staje się d, a z wraca na początek jako c (reszta z dzielenia przez 26). Odszyfrowanie to przesunięcie o 26 - 3 = 23, czyli dalej w tę samą stronę aż do pełnego obrotu.
#include <iostream>
#include <cstring>
using namespace std;
// szyfr Cezara: kazda litera przesunieta o shift miejsc w alfabecie (26 liter)
void caesar(char *s, int shift) {
for (int i = 0; s[i] != '\0'; i++) {
if (s[i] >= 'a' && s[i] <= 'z') {
s[i] = 'a' + (s[i] - 'a' + shift) % 26;
} else if (s[i] >= 'A' && s[i] <= 'Z') {
s[i] = 'A' + (s[i] - 'A' + shift) % 26;
}
}
}
int main() {
char message[] = "Spotkanie o zmierzchu";
caesar(message, 3);
cout << message << endl;
caesar(message, 26 - 3);
cout << message << endl;
return 0;
}Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Podstawy C++·Zaloguj się, aby zapisać postęp na koncie.