0
我正在使用密碼的程序。我需要使用的密碼是qwerty的字母表。所以......替代密碼字母QWERTY
abcdefghijklmnopqrstuvwxyz
qwertyuiopasdfghjklzxcvbnm
程序需要採取編碼關鍵
qwertyuiopasdfghjklzxcvbnm
,併產生解碼密鑰。
我該怎麼做呢?我以前只做過凱撒密碼。
我正在使用密碼的程序。我需要使用的密碼是qwerty的字母表。所以......替代密碼字母QWERTY
abcdefghijklmnopqrstuvwxyz
qwertyuiopasdfghjklzxcvbnm
程序需要採取編碼關鍵
qwertyuiopasdfghjklzxcvbnm
,併產生解碼密鑰。
我該怎麼做呢?我以前只做過凱撒密碼。
下面是用C代碼字符串輸入轉換爲QWERTY密碼,假設你只有小寫字母的工作,並且使用的500字符串緩衝區大小:
#include <stdio.h>
#include <string.h>
int main() {
char* ciphertext = "qwertyuiopasdfghjklzxcvbnm"; // cipher lookup
char input[500]; // input buffer
printf("Enter text: ");
fgets(input, sizeof(input), stdin); // safe input from user
input[strlen(input) - 1] = 0; // remove the \n (newline)
int count = strlen(input); // get the string length
char output[count]; // output string
for(int i = 0; i < count; i++) { // loop through characters in input
int index = ((int) input[i]) - 97; // get the index in the cipher by subtracting 'a' (97) from the current character
if(index < 0) {
output[i] = ' '; // if index < 0, put a space to account for spaces
}
else {
output[i] = ciphertext[index]; // else, assign the output[i] to the ciphertext[index]
}
}
output[count] = 0; // null-terminate the string
printf("output: %s\n", output); // output the result
}
幻數:97:(( – ThingyWotsit
常量或靜態常量查找表/陣列。索引與'a'或'q'的偏移量 – ThingyWotsit