⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kaisajiami.c

📁 凯撒密码,凯撒加密核心算法,代码有加密也有解密功能
💻 C
字号:
#include "stdio.h"

//加密 
char jiami1(char m,int k)
  {
    m='a'+(m-'a'+k)%26;
    return(m);
  }
 char jiami2(char m,int k)
  {
     m='A'+(m-'A'+k)%26;
     return(m);
  } 
  //解密  
 char jiemi1(char m,int k)
  {
     m='a'+(m-'a'+(26-k))%26;
     return(m); 
  }
 char jiemi2(char m,int k)
  {
    m='A'+(m-'A'+(26-k))%26;
    return(m); 
  } 


main()
{
 char m[10];  
 int x,k,i;
 do
 { 
  printf("  凯撒密码\n"); 
  printf("1.为字符串加密\n"); 
  printf("2.为字符串解密\n");
  printf("0.退出\n");
  scanf("%d",&x); 
  if(x<0||x>2)
         {
          do{
             printf("\n输入有误,请重新输入0-2之间的数");
             scanf("%d",&x); 
            }while(x<0||x>2); 
         } 
  switch(x)
  {
    case 1:
             printf("请输入明文:");
             for(i=0;m[i]!='\0';i++)
              scanf("%s",&m[i]);
             printf("请输入密钥:");
             scanf("%d",&k); 
             if(k!=3)
               printf("密钥错误\n"); 
             else
                 for(i=0;m[i]!='\0';i++) 
                  {
                     if(m[i]>='a'&&m[i]<='z') 
                        m[i]=jiami1(m[i],k);
                     else
                        {
                         if(m[i]>='A'&&m[i]<='Z')
                           m[i]=jiami2(m[i],k);
                          
                        }
                  }
                  printf("密文为");
                  for(i=0;m[i]!='\0';i++)
                      printf("%s",m[i]);break;     
           
    case 2: 
             printf("请输入密文:");
             for(i=0;m[i]!='\0';i++)
              scanf("%s",&m[i]); 
             printf("请输入密钥:");
             scanf("%d",&k); 
             if(k!=3) 
                printf("密钥错误\n"); 
             else
                for(i=0;m[i]!='\0';i++) 
                  {
                     if(m[i]>='a'&&m[i]<='z') 
                        m[i]=jiemi1(m[i],k);
                     else
                        {
                         if(m[i]>='A'&&m[i]<='Z')
                            m[i]=jiemi2(m[i],k);
                           
                        }
                  }
                  printf("明文为%s:",m[i]);
                  for(i=0;m[i]!='\0';i++)
                      printf("%s",m[i]);break;     
            
     default: printf("谢谢您的使用,再见!"); 
    }	 
  }while(x>0); 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -