Шифр Цезаря (Реализация на С++)

C++   6 июня 2012  Автор статьи:  

Программа шифрует только символы латинского алфавита, остальные остаются без изменений.
Реализация данного алгоритма на C++:

//Программа шифрования/дешифрования символов латиницы алгоритмом Цезаря
#include
#include
#include
#include
#include
#include

using namespace std;
int main()
{
int k; //Переменная выбора - шифрование/дешифрование
int shift; //Величина сдвига
string result = ""; //Строка - результат
cout<<"Enter 1 for encryption and decryption of 2\n"; cin>>k;
switch (k) //Если k
{
case 1: //Если выбрано шифрование
{
cout<<"Enter value shift for encryption\n"; cin>>shift;
if (shift > 26)
shift = shift % 26; //Вычисление сдвига
cout<<"Read of file...\n"; setlocale(LC_ALL,"Russian");//Чтение файла string s; //Строка считанная из файла ifstream in("Test.txt"); getline(in,s); cout<<"Text of file: \n"< 122))
result += s[i];
//Если буква является строчной
if (((int)(s[i]) >= 97) && ((int)(s[i]) <= 122)) { //Если буква, после сдвига выходит за пределы алфавита if ((int)(s[i]) + shift > 122)
//Добавление в строку результатов символ
result += (char)((int)(s[i]) + shift - 26);
//Если буква может быть сдвинута в пределах алфавита
else
//Добавление в строку результатов символ
result += (char)((int)(s[i]) + shift);
}
//Если буква является прописной
if (((int)(s[i]) >= 65) && ((int)(s[i]) <= 90)) { //Если буква, после сдвига выходит за пределы алфавита if ((int)(s[i]) + shift > 90)
//Добавление в строку результатов символ
result += (char)((int)(s[i]) + shift - 26);
//Если буква может быть сдвинута в пределах алфавита
else
//Добавление в строку результатов символ
result += (char)((int)(s[i]) + shift);
}
}
cout<<"Encryption complete!\n"; cout<<"Result:\n"; cout<>shift;
if (shift > 26)
shift = shift % 26;
cout<<"Read of file...\n"; setlocale(LC_ALL,"Russian"); string s; ifstream in("Test.txt"); getline(in,s); cout<<"Text of file: \n"< 122))
result += s[i];
//Если буква является строчной
if (((int)(s[i]) >= 97) && ((int)(s[i]) <= 122)) { //Если буква, после сдвига выходит за пределы алфавита if ((int)(s[i]) - shift < 97) //Добавление в строку результатов символ result += (char)((int)(s[i]) - shift + 26); //Если буква может быть сдвинута в пределах алфавита else //Добавление в строку результатов символ result += (char)((int)(s[i]) - shift); } //Если буква является прописной if (((int)(s[i]) >= 65) && ((int)(s[i]) <= 90)) { //Если буква, после сдвига выходит за пределы алфавита if ((int)(s[i]) - shift < 65) //Добавление в строку результатов символ result += (char)((int)(s[i]) - shift + 26); //Если буква может быть сдвинута в пределах алфавита else //Добавление в строку результатов символ result += (char)((int)(s[i]) - shift); } } cout<<"Decryption complete!\n"; cout<<"Result:\n"; cout<

  • Victor

    как он шифрует просто компилирует и все а где шифрованный текст

    • Victor

      извиняюсь все заработало!!!!!

    • Сергей Петров

      Во первых, надо указывать не буквы, в value shift, а сдвиг, это число, во вторых прога считывает данные с заранее созданного файла, почитайте код.

  • Victor

    как он шифрует просто компилирует и все а где шифрованный текст

  • Victor

    извиняюсь все заработало!!!!!

  • Light

    а можно ли сделать это с кириллицей???

  • bezveazof

    Доброго времени суток, не силен в программировании, но столкнулся с необходимостью использования данного кода, скачал C builder и скопировал код программы, в итоге мне при запуске выдает следующее. Подскажите пожалуйста как можно решить вопрос.

    • К сожалению тупое копирование кода, не дает результата… Скомпилируйте сами в C builder простую программу и вы поймете, как запустить эту.

  • bezveazof

    Доброго времени суток, не силен в программировании, но столкнулся с необходимостью использования данного кода, скачал C builder и скопировал код программы, в итоге мне при запуске выдает следующее. Подскажите пожалуйста как можно решить вопрос.

  • Alex111111

    Программа не шифрует. Из файла строку считывает, но не шифрует ее.

    • Данная программа выводит результат шифрования на экран.

Научиться программировать

  • на Delphi

  • на Java

  • на C++