View difference between Paste ID: 5RMg1dQT and 70UFVCHK
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
}