#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();
}
下面實驗截圖:
每天進步一點點~~