2017-04-20 135 views
0

我正在使用密碼的程序。我需要使用的密碼是qwerty的字母表。所以......替代密碼字母QWERTY

abcdefghijklmnopqrstuvwxyz 
qwertyuiopasdfghjklzxcvbnm 

程序需要採取編碼關鍵

qwertyuiopasdfghjklzxcvbnm 

,併產生解碼密鑰。

我該怎麼做呢?我以前只做過凱撒密碼。

+1

常量或靜態常量查找表/陣列。索引與'a'或'q'的偏移量 – ThingyWotsit

回答

0

下面是用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 
} 
+1

幻數:97:(( – ThingyWotsit