[英]2-rail and caesar cipher using C
我已經獲得了使用Caesar和2軌密碼加密和解密單詞的作業。 雖然我理解這個概念,但是在將它放入代碼時遇到了很大的麻煩。
練習 *使用單詞“Alexandrossa”並使用雙軌柵欄方法對其進行加密,然后通過2個字母向前加密到Caesar(即A變為C,或X變為Z)
這是我的代碼:
#include <stdio.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char a[2][6] = {'A', 'L', 'E', 'X', 'A', 'N', 'D', 'R', 'O', 'S', 'S', 'A'};
char row, col;
for (row = 0; row < 2; ++row)
{
for (col = 0; col < 6; ++col)
{
printf("%c", a[row][col]);
}
printf("\n", a[row][col]);
}
return 0;
}
它顯示為......
ALEXAN
DROSSA
但是我無法將輸出顯示為:
AEADOS
LXNRSA
結果:AEADOSLXNRSA
如果有人可以幫我完成這個程序,至少給我一些暗示完成Caesar Cipher部分沒有問題,我真的很感激。 謝謝。
您可以遍歷字符串,只需根據需要操作字符串。
#include <stdio.h>
int main() {
char a[2][6] = {'A', 'L', 'E', 'X', 'A', 'N', 'D', 'R', 'O', 'S', 'S', 'A'};
char row, col;
printf("Rail cipher:\n");
for (row = 0; row < 1; ++row) {
for (col = 0; col < 12; col += 2) {
printf("%c", a[row][col]);
}
//printf("\n");
for (col = 0; col < 12; col += 2) {
printf("%c", a[row][col + 1]);
}
}
printf("\nCaesar cipher:\n");
for (row = 0; row < 12; ++row) {
char c = a[0][row];
c = (char) (c + 2);
printf("%c", c);
}
return 0;
}
上面的代碼只是用你的兩種方法加密字符串。 通過反轉算法類似地進行解密。
測試
$ ./a.out Rail cipher: AEADOSLXNRSA Caesar cipher: CNGZCPFTQUUC Process finished with exit code 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.