C++ 如何解决解密凯撒密码程序中的问题? #包括 使用名称空间std; int main() { setlocale(乌克兰语); 字符串文本=“ЇЇЩЭЧЧЧззЮззбббббббббббббббб; 字符arr[32]={'А',Б',Б',Б',С',П
如何解决解密凯撒密码程序中的问题?C++ 如何解决解密凯撒密码程序中的问题? #包括 使用名称空间std; int main() { setlocale(乌克兰语); 字符串文本=“ЇЇЩЭЧЧЧззЮззбббббббббббббббб; 字符arr[32]={'А',Б',Б',Б',С',П,c++,C++,如何解决解密凯撒密码程序中的问题? #包括 使用名称空间std; int main() { setlocale(乌克兰语); 字符串文本=“ЇЇЩЭЧЧЧззЮззбббббббббббббббб; 字符arr[32]={'А',Б',Б',Б',С',П',Ф',Б',Й',Ї',Й',κ,Л',М',Б',П',М',С',С',У',Ф',Ч',Щ',Ю',Я',}; 整数加1; 对于(intb=1;b >,你访问 ARR [32 ] < /Cl>。< /P>你的代码以这种方式工作,这是很
#包括
使用名称空间std;
int main()
{
setlocale(乌克兰语);
字符串文本=“ЇЇЩЭЧЧЧззЮззбббббббббббббббб;
字符arr[32]={'А',Б',Б',Б',С',П',Ф',Б',Й',Ї',Й',κ,Л',М',Б',П',М',С',С',У',Ф',Ч',Щ',Ю',Я',};
整数加1;
对于(intb=1;b<32;b++){
字符串var=文本;
对于(int i=0;i0){
var[i]=arr[a-加];
打破
}
否则{
var[i]=arr[32+(a-加)];
打破
}
}
;
}
}
CUT< P>当<代码> A= = Plus < /Cl> >,你访问<代码> ARR [32 ] < /Cl>。< /P>你的代码以这种方式工作,这是很难预测的。这是C++,不是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++;
}
}