資源簡介
已經編譯過,北科的孩子會用到,別的學校也可能用到
代碼片段和文件信息
#include
#include
#include
/*維吉尼亞*/
#define?N?100
char?input[N];??????????//保存成整數,輸出時強制轉換成字符
char?output[N]a[N];????//輸入時輸入字符,參與運算時強制轉換成整數
int??k[N];??????????????//密鑰
unsigned?int?i;
void?getPlainText()?????//獲得明文字符串
{printf(“\n請輸入明文:“);
?scanf(“%s“input);
?printf(“\n“);
}
void?getCipherText()?????//獲得密文字符串
{printf(“\n請輸入密文:“);
?scanf(“%s“input);
?printf(“\n“);
}
void?getLength()????????//獲取密鑰
{printf(“請輸入密鑰:“);
?scanf(“%s“a);
?for(i=0;i ?{if(a[i]>=‘A‘&&a[i]<=‘Z‘)
??k[i]=a[i]-‘A‘;
??else?if(a[i]>=‘a‘&&a[i]<=‘z‘)
??k[i]=a[i]-‘a‘;
?}
}?
void?Weiji_cipher()?????????????????????//維吉尼亞加密
{unsigned?int?j;
?j=0;
?for(i=0;i ?{if((int)input[i]+k[j]>(int)‘z‘)
??{input[i]-=26;????????????????????????//保證循環
???output[i]=input[i]+k[j];
??}?
??else
??{output[i]=input[i]+k[j];?????????????//字母在字母表中右移K位
???if(input[i]<=‘Z‘&&output[i]>‘Z‘)
???{output[i]-=26;??????????????????????//保證循環
???}
??}
??if(j ??j=j+1;
??else?j=0;
?}
}
void?Weiji_plain()??????????????????????//維吉尼亞解密
{unsigned?int?j;
?j=0;
?for(i=0;i ?{output[i]=(int
評論
共有 條評論