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