您的位置:首页 > 其它

华为oj字符串加解密

2015-11-20 16:42 429 查看
#include<iostream>
#include<string.h>
#define N  100
using namespace std;
void Encrypt(char auPassword[],char aucResult[])
{
while((*auPassword) != '\0')
{
int asc = (int)(*auPassword);
if(asc>=48&&asc<=57)  //按照数字处理
{
if(asc != 57) //不是9
{
cout<<char(++asc);
*aucResult = char(++asc);
}
else
{
cout<<0;
*aucResult = '0';
}

}
else  //字母处理
{
if(asc>=97&&asc<=122) //原来是小写字母
{
if(asc != 122)
{
cout<<(char)toupper(++asc);
*aucResult = (char)toupper(++asc);
}
else
{
cout<<'A';
*aucResult = 'A';
}
}
else  //原来是大写字母
{
if(asc != 90)
{
cout<<(char)tolower(++asc);
*aucResult = (char)tolower(++asc);
}
else
{
cout<<'a';
*aucResult = 'a';
}
}
}
++auPassword;
++aucResult;
}
}

int unEncrypt(char result[],char password[])
{
while((*password) != '\0')
{
int asc = (int)(*password);
if(asc>=48&&asc<=57)  //按照数字处理
{
if(asc != 48) //不是9
{
cout<<char(--asc);
*result = char(--asc);
}
else
{
cout<<9;
*result = '9';
}

}
else  //字母处理
{
if(asc>=97&&asc<=122) //原来是小写字母
{
if(asc != 97)
{
cout<<(char)toupper(--asc);
*result = (char)toupper(--asc);
}
else
{
cout<<'Z';
*result = 'Z';
}
}
else  //原来是大写字母
{
if(asc != 65)
{
cout<<(char)tolower(--asc);
*result = (char)tolower(--asc);
}
else
{
cout<<'z';
*result = 'z';
}
}
}
++password;
++result;
}
return 1;
}
int main()
{
char data
,kdata
,aucResult
,result
;
int k;
cin>>data>>kdata;
Encrypt(data,aucResult);
cout<<endl;
k = unEncrypt(result,kdata);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: