#include<stdio.h>
void main()
{
char a[26]={'a','b','c','d','e','f','g','h', 'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'},b[26];
int i,j,k;
clrscr();
printf("Please input the No. you want to move(0<=j<=25):/t");
scanf("%d",&j);
for(i=0;i<=25;i++)
{
k=(i+j)%26;
b[i]=a[k];
}
for(i=0;i<=25;i++)
{
printf("%c ",a[i]);
}
printf("/n");
for(i=0;i<=25;i++)
{
printf("%c ",b[i]);
}
getch();
}
原理其实很简单,就是字母表中各个元素移位,就这些。
顺便写上加密的代码,还不能对句子进行加密,只能单词,但是支持大小写,同样的大写加密规律同小写的是一样的,同样移位。
#include<stdio.h>
#include<ctype.h>
void main()
{
char a[26]={'a','b','c','d','e','f','g','h', 'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'},b[26],*c,d[26];
int i,j,k;
clrscr();
printf("Please input the No. you want to move(0<=j<=25):/t");
scanf("%d",&j);
for(i=0;i<=25;i++)
{
k=(i+j)%26;
b[i]=a[k];
}
for(i=0;i<=26;i++)
{
d[i]=b[i]-32;
}
for(i=0;i<=25;i++)
{
printf("%c ",a[i]);
}
printf("/n");
for(i=0;i<=25;i++)
{
printf("%c ",b[i]);
}
printf("/nPlease input the String you want to Encrypt:/t");
scanf("%s",c);
for(;*c!='/0';c++)
{
if(isalpha(*c)){
if(islower(*c))
*c=b[*c-97];
else *c=d[*c-65];
}
}
printf("The Encrypted Sting is:/t%s");
getch();
}
下面实验截图:
每天进步一点点~~