SHOW:
|
|
- or go back to the newest paste.
| 1 | #include<iostream> | |
| 2 | #include<vector> | |
| 3 | #include<stdlib.h> | |
| 4 | #include <stdexcept> | |
| 5 | #include <fstream> | |
| 6 | #include <string> | |
| 7 | #include <algorithm> | |
| 8 | #include <stddef.h> | |
| 9 | ||
| 10 | using namespace std; | |
| 11 | ||
| 12 | void changeuppercase(vector<char>& word, int size) | |
| 13 | {
| |
| 14 | for (int i = 0; i < size; i++) | |
| 15 | {
| |
| 16 | if (word[i] >= 97 && word[i] <= 122) | |
| 17 | word[i] -= 32; | |
| 18 | } | |
| 19 | } | |
| 20 | void printtext(vector<char> word, int size) | |
| 21 | {
| |
| 22 | for (int i = 0; i < size; i++) | |
| 23 | {
| |
| 24 | cout << (char)(word[i] + 65); | |
| 25 | } | |
| 26 | cout << endl; | |
| 27 | return; | |
| 28 | } | |
| 29 | size_t getinput(vector<char>& sen) | |
| 30 | {
| |
| 31 | char b; | |
| 32 | while (1) | |
| 33 | {
| |
| 34 | b = getchar(); | |
| 35 | if (b == '\n') | |
| 36 | break; | |
| 37 | sen.push_back(b); | |
| 38 | } | |
| 39 | return sen.size(); | |
| 40 | } | |
| 41 | int main() | |
| 42 | {
| |
| 43 | vector<char> sen; | |
| 44 | vector<char> enc_sen; | |
| 45 | vector<char> dec_sen; | |
| 46 | int *p; | |
| 47 | int j; | |
| 48 | size_t size; | |
| 49 | cout << "Enter Message to Encrypt:"; | |
| 50 | size = getinput(sen); | |
| 51 | changeuppercase(sen, size); | |
| 52 | p = (int*)malloc(sen.size() * sizeof(int)); | |
| 53 | for (j = 0; j < size; j++) | |
| 54 | {
| |
| 55 | p[j] = rand() % 26; | |
| 56 | if (sen[j] >= 65 && sen[j] <= 90) | |
| 57 | enc_sen.push_back((char)((sen[j] - 65 + p[j]) % 26)); | |
| 58 | else if (sen[j] >= 97 && sen[j] <= 122) | |
| 59 | enc_sen.push_back((char)((sen[j] - 97 + p[j]) % 26)); | |
| 60 | else | |
| 61 | enc_sen.push_back((char)sen[j]); | |
| 62 | } | |
| 63 | cout << "\nEncoded Message:"; | |
| 64 | printtext(enc_sen, size); | |
| 65 | cout << "\nKey for decryption:\n"; | |
| 66 | for (j = 0; j < size; j++) | |
| 67 | {
| |
| 68 | cout << (char)(p[j] + 65); | |
| 69 | } | |
| 70 | cout << endl; | |
| 71 | cout << "\nDecrypted Message:"; | |
| 72 | for (j = 0; j < size; j++) | |
| 73 | {
| |
| 74 | if ((enc_sen[j] - p[j]) < 0) | |
| 75 | dec_sen.push_back((char)(enc_sen[j] - p[j] + 26)); | |
| 76 | else if ((enc_sen[j] - p[j]) >= 0) | |
| 77 | dec_sen.push_back((char)(enc_sen[j] - p[j])); | |
| 78 | else | |
| 79 | dec_sen.push_back((char)enc_sen[j]); | |
| 80 | } | |
| 81 | printtext(dec_sen, size); | |
| 82 | return 0; | |
| 83 | } |