一、单个字符方法
#include<>
main()
{
char c;
printf("请输入明文字符:");
scanf("%c",&c);
if((c>='a'&&c<='z') || (c>='A'&&c<='Z'))
{
c=c+3;
if((c>'Z'&&c<='Z'+3)|| (c>'z'))
c=c-26;
}
printf("密文字符是:%c\n",c);
}
#include<>
main()
{
char c;
printf("请输入密文字符:");
scanf("%c",&c);
if((c>='a'&&c<='z') || (c>='A'&&c<='Z'))
{
c=c-3;
if((c<'A')|| (c<'a' && c>='a'-3))
c=c+26;
}
printf("明文字符是:%c\n",c);
}
二、单个字符方法2:
#include<>
char encrypt(char ch,int n)/*加密函数,把字符向后循环移位n*/
{
while(ch>='A' && ch<='Z')
{
return ('A'+(ch-'A'+n)%26);
}
while(ch>='a' && ch<='z')
{
return ('a'+(ch-'a'+n)%26);
}
return ch;
}
main()
{
char ch1,ch2,n;
printf("请输入字符:");
scanf("%c",&ch1);
printf("请输入密钥:");
scanf("%d",&n);
ch2=encrypt(ch1,n);
printf("密文字符是:%c\n",ch2);
}
#include<>
char decrypt(char ch,int n) {
while(ch>='A' && ch<='Z')
{
return ('Z'-('Z'-ch+n)%26);
}
while(ch>='a' && ch<='z')
{
return ('z'-('z'-ch+n)%26);
}
return ch;
}
main()
{
char ch1,ch2,n;
printf("请输入密文字符:");
scanf("%c",&ch1);
printf("请输入密钥:");
scanf("%d",&n);
ch2=decrypt(ch1,n);
printf("明文字符是:%c\n",ch2);
}
三、字符串方法1:
加密:
#include<>
#include<>
#include<>
main()
{
char *str=NULL;
char c;
int i = 0;
str = (char *)malloc(1);
printf("请输入明文字符串:");
while((c=getchar())!='\n')
{
str = (char *)realloc(str, i+1);
if((
数据结构—凯撒密码 来自淘豆网m.daumloan.com转载请标明出处.