This repository has been archived on 2026-07-28. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
college-work/Задания по C и C++/c/13.c
T

56 lines
1.3 KiB
C
Executable File

/*
13.Написать программу, которая шифрует и дешифрует сообщение Шифром Цезаря.
*/
#include <stdio.h>
#include <string.h>
#define OFFSET 13
char* encrypt(char* string) {
char *result = string;
for (int i =0; i < strlen(string);i++) {
char c = string[i];
if (c >= 'A' && c <= 'Z') {
c = c + (OFFSET % 26);
if (c > 'Z') c = 'A' + (c - 'Z') - 1;
}
if (c >= 'a' && c <= 'z') {
c = c + (OFFSET % 26);
if (c > 'z') c= 'a' + (c - 'z') - 1;
}
result[i] = c;
}
return result;
}
char* decrypt(char* string) {
char *result = string;
for (int i =0; i < strlen(string);i++) {
char c = string[i];
if (c >= 'A' && c <= 'Z') {
c = c - (OFFSET % 26);
if (c < 'A') c = 'Z' - ('A' - c) + 1;
}
if (c >= 'a' && c <= 'z') {
c = c - (OFFSET % 26);
if (c < 'a') c= 'z' - ('a' - c) + 1;
}
result[i] = c;
}
return result;
}
int main() {
char string[32];
scanf("%s", string);
char *enc = encrypt(string);
printf("%s\n", enc);
printf("%s", decrypt(enc));
return 0;
}