您的位置:首页 > 其它

字符串加解密

2015-07-05 12:07 260 查看
题目描述

1、对输入的字符串进行加解密,并输出。

2加密方法为:

当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;

当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;

其他字符不做变化。

3、解密方法为加密的逆过程。

接口描述:

实现接口,每个接口实现1个基本操作:

void Encrypt (char aucPassword[], char aucResult[]):在该函数中实现字符串加密并输出

说明:

1、字符串以\0结尾。

2、字符串最长100个字符。

int unEncrypt (char result[], char password[]):在该函数中实现字符串解密并输出

说明:

1、字符串以\0结尾。

2、字符串最长100个字符。

完整代码:

/******************************************************************************

Copyright (C), 2001-2011, Huawei Tech. Co., Ltd.

******************************************************************************
File Name     :
Version       :
Author        :
Created       : 2012/03/12
Last Modified :
Description   :
Function List :

History       :
1.Date        : 2012/03/12
Author      :
Modification: Created file

******************************************************************************/
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

//1、对输入的字符串进行加解密,并输出。
//
//2加密方法为:
//当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字母a时则替换为B;字母Z时则替换为a;
//当内容是数字时则把该数字加1,如0替换1,1替换2,9替换0;
//其他字符不做变化。
//
//3、解密方法为加密的逆过程。

int Encrypt (char password[], char result[])
{
/* 代码在这里实现 */
while(*password!='\0')
{
if(*password=='9')
{
*result++='0';
password++;
}
else if(*password>='0'&&*password<'9')
{
*result++=*password+1;
password++;
}
else if(*password=='Z')
{
*result++='a';
password++;
}
else if(*password=='z')
{
*result++='A';
password++;
}
else if(*password>='A'&&*password<'Z')
{
*result++=*password+33;
password++;
}

else if(*password>='a'&&*password<'z')
{
*result++=*password-31;
password++;
}
else
*result++=*password++;

}

*result='\0';
return 0;
}

int unEncrypt (char result[], char password[])
{
/* 代码在这里实现 */
while(*result!='\0')
{
if(*result>='1'&&*result<='9')
{
*password++=*result-1;
result++;
}
else if(*result=='0')
{
*password++='9';
result++;
}
else if(*result>='b'&&*result<='z')
{
*password++=*result-33;
result++;
}
else if(*result=='a')
{
*password++='Z';
result++;
}
else if(*result>='B'&&*result<='Z')
{
*password++=*result+31;
result++;
}
else if(*result=='A')
{
*password++='z';
result++;
}
else
*password++=*result++;
}
*password='\0';
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: