当前位置:   article > 正文

关于C语言实现凯撒加密算法_c 凯撒函数

c 凯撒函数

        我们知道凯撒加密算法是将需要加密的明文的每个单元字符改为某几位之后的字符。

如加密五位:

        原文:abcdef 密文:ghijk

算法原理

        加密:q=p+n(mod 26)
        解密:p=q-n(mod 26)

代码(无指针):

  1. #include <stdio.h>
  2. #include <string.h>
  3. void test();
  4. int main() {//主函数
  5. int s=1;
  6. while(s){
  7. int q,w=0;
  8. printf("请选择加密/解密/退出(1/2/0)");
  9. scanf("%d",&q);//选择
  10. getchar();
  11. if(q==1){
  12. test(w);
  13. }
  14. else if(q==2){
  15. w=1;
  16. test(w);
  17. }
  18. else if(q==0){
  19. s=0;
  20. }
  21. else{
  22. printf("输入错误请重新输入");
  23. }
  24. }
  25. return 0;
  26. }
  27. void test(int w){
  28. char wordline[100];
  29. int i,k;
  30. if(w==1){
  31. printf("请输入密文:");
  32. }
  33. else{
  34. printf("请输入明文:");
  35. }
  36. gets(wordline);
  37. printf("输入k值(1-25):");
  38. scanf("%d%*c",&k);//需要改为第几个之后的字符
  39. if(w==1){
  40. k=26-k;
  41. }
  42. for(i=0; i<strlen(wordline); i++)
  43. {
  44. if(wordline[i] >= 'A' && wordline[i] <= 'Z')
  45. {
  46. wordline[i] = ((wordline[i]-'A')+k)%26+'A';
  47. }
  48. else if(wordline[i] >= 'a' && wordline[i] <= 'z')
  49. {
  50. wordline[i] = ((wordline[i]-'a')+k)%26+'a';
  51. }
  52. }
  53. if(w==1){
  54. printf("解密后明文:%s",wordline);
  55. }
  56. else{
  57. printf("加密后密文:%s",wordline);
  58. }
  59. printf("\n");
  60. }

注:写代码时算法参考于凯撒加密算法_是Rong啊~的博客-CSDN博客_凯撒加密算法

 

结果(截图):

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/496517
推荐阅读
相关标签
  

闽ICP备14008679号