输入一个字母组成明文字符串,并输入一个字母组成的密钥,对明文进行分组后与密钥进行移位加密,输入密文以及密钥可以进行解密
输入字符串:abcdef输入密钥:abc输出:bdfegi,输入的明文在分组时不足的部分要采用特殊字符进行标记进行处理。
你题目的解答代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int i,sl,pl,x;
char str[100],pas[100];
printf("输入一个字母组成的明文字符串:");
gets(str);
printf("输入一个小写字母组成密钥:");
gets(pas);
sl = strlen(str);
pl = strlen(pas);
for (i = 0; i < sl; i++)
{
x = pas[i%pl]-'a'+1;
if (str[i] >= 'A' && str[i] <= 'Z')
str[i] = (str[i] - 'A' + x) % 26 + 'A';
if (str[i] >= 'a' && str[i] <= 'z')
str[i] = (str[i] - 'a' + x) % 26 + 'a';
}
printf("%s",str);
return 0;
}
如有帮助,望采纳!谢谢!