【发布时间】:2023-03-16 11:33:01
【问题描述】:
我有一个用户输入的字符串 string date(格式 DD-MM-YYYY),我需要按照这个密钥 0=W、1=x、2=7、3=%、4=m 等对其进行加密上...
当我输入以下 12-06-1983 时,这是我得到的输出 012FFAD8 - 这是错误的
根据key,12-06-1983的输出应该是x7dW#dx&4%
以下是我的代码,请帮我找出错误。 此外,我是否以正确的方式解决这个问题?有没有更简单的方法来做到这一点? 请记住,这是我的 C++ 课程中的初学者作业。
string key = date;
string encryptedKey[10];
for (int i = 0; i < key.length(); i++) {
if (key[i] == '0' ) {
encryptedKey[i] = 'W';
}
else if (key[i] == '1') {
encryptedKey[i] = 'x';
}
else if (key[i] == '2') {
encryptedKey[i] = '7';
}
else if (key[i] == '3') {
encryptedKey[i] = '%';
}
else if (key[i] == '4') {
encryptedKey[i] = 'm';
}
else if (key[i] == '5') {
encryptedKey[i] = 'G';
}
else if (key[i] == '6') {
encryptedKey[i] = '#';
}
else if (key[i] == '7') {
encryptedKey[i] = 'P';
}
else if (key[i] == '8') {
encryptedKey[i] = '4';
}
else if (key[i] == '9') {
encryptedKey[i] = '&';
}
else if (key[i] == '-') {
encryptedKey[i] = 'd';
}
else {
cout << "\nError.\n";
}
}
cout << encryptedKey;
【问题讨论】:
-
encryptedKey不应该是字符串数组。 -
@John3136 谢谢。
-
switch的可读性更强,表格查找也更易读。
标签: c++ encryption key