c++ - 如何解决解密凯撒密码的程序中的问题?
问题描述
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "Ukrainian");
string text = "ІЇЬЩЙКХЧКЬСИЛЧХЙЮІЙБНИКЇИЗБДШЬЗЬЇХКИЇАХЩИІИЖИШИУФЕИШИЄУЩФЖЖИЯЗХЧ";
char arr[32] = { 'А','Б','В', 'Г', 'Д', 'Е', 'Є', 'Ж', 'З', 'И', 'І', 'Ї', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ь', 'Ю', 'Я', };
int plus = 1;
for (int b = 1;b < 32;b++) {
string var = text;
for (int i = 0;i < text.length();i++) {
for (int a = 0;a < 32;a++) {
if (var[i] == arr[a]) {
if ((a - plus )> 0) {
var[i] = arr[a - plus];
break;
}
else {
var[i] = arr[32 +(a - plus)];
break;
}
}
;
}
}
cout << "Ключ =" << plus-1 << "\n \n ";
for (int c = 0;c < size(var);c++) {
cout << var[c];
}
cout << "\n";
plus++;
}
}
已经编写了一个代码来处理扩展的加密对冲并且程序正在运行(є 代码中写入的文本数量)但是当我得到解密的文本而不是字母“A”时,出现了一个难以理解的字符。如何解决这个问题?(乌克兰字母)
解决方案
什么时候a == plus
,你访问arr [32]
。
推荐阅读
- data-visualization - 在一个拥有大约 3 亿实时数据并自行更新的网站中进行交互式数据可视化
- javascript - 如何解释下面的例子?吊装?
- java - 如何用 mockito 模拟 exhange.getIn().getBody(HttpServletRespose.class)
- python - 尝试根据数据创建列表
- docker - 在mac osx上通过`-it`命令拉取镜像后如何进入docker容器?
- python - 如何更改 Python GTK3 SpinButton 显示文本的格式?
- python - Python 在 .csv 文件中“查找/替换”字符串,出现回溯名称错误
- forms - 如何禁用谷歌表单上的粘贴?
- python - How do I use regular expression to list words that start with vowels in a sentence
- c++ - 用于平铺矩阵乘法的 AVX 内在函数