字符串加解密

主要采用ctype.h的几个函数  tolower大写变小写,toupper小写变大写,isdigit是不是数字,isalpha是不是字母,islower是不是小写,isupper是不是大写。还有其他的函数

可以查看ctype.h

#include<iostream>

#include<string>
#include<ctype.h>
using namespace std;
#define MAX 100




void Encrypt(char aucPassword[], char aucResult[]);
int unEncrypt(char result[], char password[]);


/*void main(){
cout << "输入说明:1、字符串以回车结尾。2、字符串最长100个字符。" << endl;
char a[MAX] = { 0 }, b[MAX] = { 0 }, c[MAX] = { 0 }, d[MAX] = { 0 };
cin >> a;
cin >> b;


Encrypt(a,c);
unEncrypt(b,d);
cout << c << endl;
cout << d << endl;
   system("pause");


}
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);
}*/
void main()
{
    //cout<<"Please input words to be encoded and decoded"<<endl;
    char aucPassword[100], aucResult[100], result[100], password[100];
    //string aucPassword,aucResult,result,password;
    cin >> aucPassword;
    cin >> result;


    Encrypt(aucPassword, aucResult);
    unEncrypt(result, password);
  
    
    return;
}
void Encrypt(char aucPassword[], char aucResult[]){
int len = strlen(aucPassword);
int i = 0;
for (i = 0; i < len + 1;i++){
if (isdigit(aucPassword[i])){
if (aucPassword[i] == '9'){
aucResult[i] = '0';
}
else{
aucResult[i] = aucPassword[i] + 1;
}
}
else if (islower(aucPassword[i])){
aucPassword[i] = toupper(aucPassword[i]);
if (aucPassword[i] == 'Z'){
aucResult[i] = 'A';
}
else{
aucResult[i] = aucPassword[i] + 1;
}
}
else if (isupper(aucPassword[i])){
aucPassword[i] = tolower(aucPassword[i]);
if (aucPassword[i] == 'z'){
aucResult[i] = 'a';
}
else{
aucResult[i] = aucPassword[i] + 1;
}
}
}
aucResult[i] = 0;
cout << aucResult << endl;
}
int unEncrypt(char result[], char password[]){
int i = 0;
int len = strlen(result);
for (i = 0; i < len + 1;i++){
if (isdigit(result[i])){
if (result[i] == '0'){
password[i] = '9';
}
else{
password[i] = result[i] - 1;
}
}
else if (islower(result[i])){
result[i] = toupper(result[i]);
if (result[i] == 'A'){
password[i] = 'Z';
}
else{
password[i] = result[i] - 1;
}
}
else if (isupper(result[i])){
result[i] = tolower(result[i]);
if (result[i] == 'a'){
password[i] = 'z';
}
else{
password[i] = result[i] - 1;
}
}
}
password[i] = 0;
cout << password << endl;
return 0;
}


/*#include<iostream>  
#include<string>  
using namespace std;
void Encrypt(char aucPassword[], char aucResult[]);
int unEncrypt(char result[], char password[]);
int main()
{
//cout<<"Please input words to be encoded and decoded"<<endl;  
char aucPassword[100], aucResult[100], result[100], password[100];
//string aucPassword,aucResult,result,password;  
cin >> aucPassword;
cin >> result;


Encrypt(aucPassword, aucResult);
unEncrypt(result, password);


return 0;
}
void Encrypt(char aucPassword[], char aucResult[])
{
char * pchar = aucPassword;
int i = 0;
while (*pchar)
{
if (*pchar >= 'a'&&*pchar<'z')
*(i + aucResult) = *pchar - 31;
else if (*pchar >= 'A'&&*pchar<'Z')
*(i + aucResult) = *pchar + 31;
else if (*pchar == 'Z')
*(i + aucResult) = 'a';
else if (*pchar == 'z')
*(i + aucResult) = 'A';
else if (*pchar >= '0'&&*pchar<'9')
*(i + aucResult) = *pchar + 1;
else if (*pchar == '9')
*(i + aucResult) = '0';
pchar++;
i++;
}
*(i + aucResult) = 0;
cout << aucResult << endl;
}
int unEncrypt(char result[], char password[])
{
char * pchar = result;
int len = strlen(result);
char * aucResult = password;
while (*pchar)
{
if (*pchar>'a'&&*pchar <= 'z')
*aucResult = *pchar - 31;
else if (*pchar>'A'&&*pchar <= 'Z')
*aucResult = *pchar + 31;
else if (*pchar == 'A')
*aucResult = 'z';
else if (*pchar == 'a')
*aucResult = 'Z';
else if (*pchar>'0'&&*pchar <= '9')
*aucResult = *pchar - 1;
else if (*pchar == '0')
*aucResult = '9';
pchar++;
aucResult++;
}
*aucResult = 0;
cout << (aucResult - len) << endl;
//system("pause");  
return 0;

}*/

  1. #include<iostream>  
  2. #include<string>  
  3. using namespace std;  
  4. void Encrypt (char aucPassword[], char aucResult[]);  
  5. int unEncrypt (char result[], char password[]);  
  6. int main()  
  7. {  
  8.     //cout<<"Please input words to be encoded and decoded"<<endl;  
  9.     char aucPassword[100],aucResult[100],result[100],password[100];  
  10.     //string aucPassword,aucResult,result,password;  
  11.     cin>>aucPassword;   
  12.     cin>>result;  
  13.   
  14.     Encrypt(aucPassword,aucResult);   
  15.     unEncrypt(result,password);   
  16.   
  17.     return 0;  
  18. }  
  19. void Encrypt (char aucPassword[], char aucResult[])  
  20. {  
  21.     char * pchar=aucPassword;  
  22.     int i=0;  
  23.     while(*pchar)  
  24.     {  
  25.         if(*pchar>='a'&&*pchar<'z')  
  26.             *(i+aucResult)=*pchar-31;  
  27.         else if(*pchar>='A'&&*pchar<'Z')  
  28.             *(i+aucResult)=*pchar+31;  
  29.         else if(*pchar=='Z')  
  30.             *(i+aucResult)='a';  
  31.         else if(*pchar=='z')  
  32.             *(i+aucResult)='A';  
  33.         else if(*pchar>='0'&&*pchar<'9')  
  34.             *(i+aucResult)=*pchar+1;  
  35.         else if(*pchar=='9')  
  36.             *(i+aucResult)='0';  
  37.         pchar++;  
  38.         i++;  
  39.     }  
  40.     *(i+aucResult)=0;  
  41.     cout<<aucResult<<endl;  
  42. }  
  43. int unEncrypt (char result[], char password[])  
  44. {  
  45.     char * pchar=result;  
[cpp]  view plain  copy
  1. <span style="white-space:pre">    </span>int len=strlen(result);  
  2.     char * aucResult=password;  
  3.     while(*pchar)  
  4.     {  
  5.         if(*pchar>'a'&&*pchar<='z')  
  6.             *aucResult=*pchar-31;  
  7.         else if(*pchar>'A'&&*pchar<='Z')  
  8.             *aucResult=*pchar+31;  
  9.         else if(*pchar=='A')  
  10.             *aucResult='z';  
  11.         else if(*pchar=='a')  
  12.             *aucResult='Z';  
  13.         else if(*pchar>'0'&&*pchar<='9')  
  14.             *aucResult=*pchar-1;  
  15.         else if(*pchar=='0')  
  16.             *aucResult='9';  
  17.         pchar++;  
  18.         aucResult++;  
  19.     }  
  20.     *aucResult=0;  
  21.     cout<<(aucResult-len)<<endl;//原来写的是aucResult,估计当时是用的和Encrypt一样的办法,定义了i变量,后来想着可以直接修改指针,修改后忘记保存了  
  22.     //system("pause");  
  23.     return 0;  
  1. #include <iostream>  
  2.   
  3. using namespace std;  
  4. void Encrypt (char aucPassword[], char aucResult[])  
  5. {  
  6.     int ii = 0;  
  7.     while( ((int('a')-1)<int(aucPassword[ii]))&&(int(aucPassword[ii])<(int('z')+1)) )  
  8.     {  
  9.         aucResult[ii] = aucPassword[ii]-32+1;  
  10.         cout<<aucResult[ii];  
  11.         ii++;  
  12.     }  
  13.     aucResult[ii] = '\0';  
  14. }  
  15.   
  16. int unEncrypt (char result[], char password[])  
  17. {  
  18.     int ii = 0;  
  19.     while( ((int('A')-1)<int(result[ii]))&&(int(result[ii])<(int('Z')+1)) )  
  20.     {  
  21.         password[ii] = result[ii]+32-1;  
  22.         cout<<password[ii];  
  23.         ii++;  
  24.     }  
  25.     password[ii] = '\0';  
  26.     return 0;  
  27. }  
  28.   
  29. int main()  
  30. {  
  31.     char aucPassword[101];  
  32.     char aucResult[101];  
  33.     char    result[101];  
  34.     char    password[101];  
  35.   
  36.     cin>>aucPassword;  
  37.     cin>>result;  
  38.     Encrypt(aucPassword,aucResult);  
  39.     cout<<endl;  
  40.     unEncrypt(result,password);  
  41.     return 0;  
  42. }  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值