#include<stdio.h>
#include<string.h>
void Encrypt(char *key, char *data, char *encrypt);
int main()
{
char key[100];
char data[100];
char encrypt[100];
gets(key);
gets(data);
int datalen,k;
datalen = strlen(data);
Encrypt(key,data,encrypt);
for ( k = 0; k < datalen; ++k)
{
printf("%c",data[k] );
}
return 0;
}
void Encrypt(char *key, char *data, char *encrypt)
{
int keylen = strlen(key);
int datalen = strlen(data);
int flag[26] ;
int c = 0;
int i,z,f,g;
for (z = 0; z < 26; ++z)
{
flag[z] = 0;
}
for (i = 0; i < keylen; ++i)
{
if (key[i] >= 'a' && key[i] <='z')
{
if (!flag[key[i]- 'a'])
{
flag[key[i] - 'a'] = 1;
encrypt[c] = key[i] - 'a' + 'A';
c++;
}
}
else if (key[i] >= 'A' && key[i] <= 'Z')
{
if (!flag[key[i] - 'A'])
{
flag[key[i] - 'A'] = 1;
encrypt[c] = key[i];
c++;
}
}
}
for ( f = 0; f < 26; ++f)
{
if (!flag[f])
{
encrypt[c] = 'A' + f;
c++;
}
}
for ( g = 0; g < datalen; ++g)
{
if (data[g] >= 'a' && data[g] <='z')
{
data[g] = encrypt[data[g] - 'a'] - 'A' +'a';
}
else if (data[g] >= 'A' && data[g] <='Z')
{
data[g] = encrypt[data[g] - 'A'];
}
}
}
华为oj,字符串加密
最新推荐文章于 2023-11-30 14:28:44 发布