您的位置:首页 > 其它

华为OJ平台试题 —— 字符串:字符串加解密

2015-08-15 13:45 453 查看
字符串加解密



代码:

#include<stdio.h>
#include<string.h>

<img src="http://img.blog.csdn.net/20150815222027059" alt="" />
void  Encrypt (char aucPassword[],  char aucResult[])
{
int len, i;
len = strlen(aucPassword);

for( i = 0; i < len +1; i++ )
{
if ( aucPassword[i] >= '0' && aucPassword[i] <= '8' )
aucPassword[i] = aucPassword[i] + 1;
else if ( aucPassword[i] == '9')
aucPassword[i] = '0';
else if ( aucPassword[i] >= 'a' && aucPassword[i] <= 'y' )
aucPassword[i] = aucPassword[i] + 1 - 32;
else if ( aucPassword[i] == 'z')
aucPassword[i] = 'a' - 32;
else if ( aucPassword[i] >= 'A' && aucPassword[i] <= 'Y' )
aucPassword[i] = aucPassword[i] + 1 + 32;
else if ( aucPassword[i] == 'Z')
aucPassword[i] = 'A' + 32;
}
strcpy(aucResult, aucPassword);
}

<img src="http://img.blog.csdn.net/20150815222038322" alt="" />
void unEncrypt (char result[], char password[])
{
int  len, i;
len = strlen(result);

for( i = 0; i < len + 1; i++ )
{
if ( result[i] > 'A' && result[i] <= 'Z' )  /* ´óд×Öĸ */
result[i] = result[i] - 1 + 32;
else if ( result[i] == 'A')				 /* ÌØÊâÇé¿ö */
result[i] = 'Z' + 32;
else if ( result[i] >= 'b' && result[i] <= 'z' ) /* Сд×Öĸ */
result[i] = result[i] - 1 - 32;
else if ( result[i] == 'a')						/* ÌØÊâÇé¿ö */
result[i] = 'z' - 32;
else if  ( result[i] >= '1' && result[i] <= '9' )
result[i] = result[i] - 1;
else if ( result[i] == '0')
result[i] = '9';
}
strcpy(password,result);
}

int main(void)
{
char sourceone[100], resultone[100], sourcetwo[100], resulttwo[100];

gets(sourceone);
gets(sourcetwo);
Encrypt(sourceone, resultone);
unEncrypt (sourcetwo, resulttwo);

puts(resultone);
puts(resulttwo);
}


注意: 如果将输入字符串和输出字符串格式改为scanf 和printf,在华为的系统会出现格式错误!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: