?? vigenere_encode.cpp
字號:
#include<stdio.h>
#include<string.h>
#define MAX 81
char *Vigenere_encode(char *Plaintext,char *Key)
{
int k=0,i=0,j=0;
int lenp,lenk;
char temp;
lenp=strlen(Plaintext);
lenk=strlen(Key);
for(i=0;i<lenp;i++)
{
j=j%lenk;
if(Key[i]>='A'&&Key[j]<='Z')
temp='A';
else if(Key[i]>='a'&&Key[j]<='z')
temp='a';
if(Plaintext[i]>='A'&&Plaintext[i]<='Z')
Plaintext[i]=((Plaintext[i]-'A'+Key[j]-temp)%26+'a');
else if(Plaintext[i]>='a'&&Plaintext[i]<='z')
Plaintext[i]=((Plaintext[i]-'a'+Key[j]-temp)%26+'A');
else
Plaintext[i]=Plaintext[i];
j++;
}
return Plaintext;
}
int Judge_char(char Key[MAX])
{
int Lenk;
Lenk=strlen(Key);
int a=0;
for(a=0;a<Lenk;a++)
{
if(Key[a]>='A'&&Key[a]<='Z'||Key[a]>='a'&&Key[a]<='z');
else
return -1;
}
return 0;
}
void main()
{
int k=0;
char P[MAX],K[MAX],*C;
printf("------------------------Welcome to the Vigenere Encode!---------------------\n");
printf("Please input the Plaintext: ");
gets(P);
printf("Input the Key: ");
gets(K);
k=Judge_char(K);
while(k==-1)
{
printf("\n Wrong! Please Input the Key again: ");
gets(K);
k=Judge_char(K);
}
printf("-------------------------------------------------------------------\n");
printf("The Ciphertext is: ");
C=Vigenere_encode(P,K);
puts(C);
printf("--------------------------------------------------------------------\n");
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -