C:电文推位加密
題目描述:
為使電文保密,將電文增加一些規律,即:使26個小寫字母構成環狀循環,輸入字符與字母推位的數,使其改變原有的意義,只有得到推位的數反推才能獲得其原有意義(符號與空格不會改變,只有字符改變)
代碼實現:
#include <stdio.h> #include <string.h>int main() {int x, i;scanf("%d", &x);//推位getchar();//吃一個回車(吃掉輸入推位后的下一個任意輸入)char buf;//定義單個字符if ((x >= 26) || (x <= -26))x = x % 26;//取模-保證循環+縮小范圍(保證|x|<26)if (x < 0)x += 26;//負推位轉化成正推位buf = getchar();//獲取第一個字符while (buf != '\n')//保證被判斷的這個不是換行{if (buf > 96 && buf < 123)//ascii碼表中 a-97 z-122{if (buf + x <= 'z')//此字符加完推位后沒有超出zbuf += x;elsebuf += x - 26;//超出z就減一輪,x-26減出來的結果是與原字符的相對位置。比如:如果減出來是負數,就是還沒到它自己(往前推);如果減出來是正數,就是在它之后。printf("%c", buf);//變好一個,打印一個}buf = getchar();//獲取下一個字符,繼續while循環}return 0; }輸出示例:
總結
- 上一篇: OPENCV入门教程十一:dilate图
- 下一篇: CS聊天室