• C语言:凯撒密码的实现


    凯撒密码的实现(10分)
    题目内容:

    凯撒密码(caeser)是罗马扩张时期朱利斯?凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。

    他的原理很简单,说到底就是字母与字母之间的替换。每一个字母按字母表顺序向后移3位,如a加密后变成d,b加密后变成e,……x加密后变成a,y加密后变成b,z加密后变成c。

    例如:“baidu”用凯撒密码法加密后字符串变为“edlgx”。

    试写一个算法,将键盘输入的文本字符串(只包含a~z的字符)进行加密后输出。

    输入格式:

    字符串 后面跟一个字母”;“

    注意这里用英文分号”;“作为输入的结束符号

    输出格式:

    字符串

    输入样例:

    baidu;

    输出样例:

    edlgx

    编码:

    #include <stdio.h>
    #include <string.h>
    int main()
    {
        char passwd[100],encrypted[100];
        int i,j,k,t,move=3;
        scanf("%s;",&passwd);
        for(i=0; i<strlen(passwd); i++)
        {
    
     		if(passwd[i] >= 'a' && passwd[i] <= 'z')
            {
                passwd[i] = ((passwd[i]-'a')+move)%26+'a';
            }else if(passwd[i]==';')
            {
            	passwd[i]='';
    		}
        }
        printf("%s",passwd);
        return 0;
    }  
    

     延伸:

    #include <stdio.h>
    #include <string.h>
    
    int main()
    {
        char passwd[100],encrypted[100];
        int i,j,k,t,move;
        while(1)
        {
            printf("Enter message to be encrypted:");
            gets(passwd);
            printf("Enter shift amount(1-25):");
            scanf("%d%*c",&move);
            for(i=0; i<strlen(passwd); i++)
            {
                if(passwd[i] >= 'A' && passwd[i] <= 'Z')
                {
                    passwd[i] = ((passwd[i]-'A')+move)%26+'A';
                }
                else if(passwd[i] >= 'a' && passwd[i] <= 'z')
                {
                    passwd[i] = ((passwd[i]-'a')+move)%26+'a';
                }
            }
            printf("%s",passwd);
            printf("
    ");
        }
        return 0;
    }
    

      

     

  • 相关阅读:
    java中的静态变量与实例变量
    Java中的关键字this
    继承和多类的基础(C++)
    11-1:(42)接雨水
    10-2
    10-1
    9-2
    9-1
    8-2
    8-1
  • 原文地址:https://www.cnblogs.com/songqingbo/p/8934065.html
Copyright © 2020-2023  润新知