题解 | #字符串加解密#
字符串加解密
http://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
using namespace std;
string encryption(string s)
{
for(int i=0;i<s.size();i++)
{
if(isalpha(s[i]))
{
if(s[i]>='a'&&s[i]<'z')
{
s[i]=toupper(s[i]+1);
}
else if(s[i]=='z')
{
s[i]='A';
}
else if(s[i]>='A'&&s[i]<'Z')
{
s[i]=tolower(s[i]+1);
}
else if(s[i]=='Z')
{
s[i]='a';
}
}
else if(isdigit(s[i]))
{
if(s[i]>='0'&&s[i]<'9')
{
s[i]=s[i]+1;
}
else
{
s[i]='0';
}
}
}
return s;
}
string decryption(string s)
{
for(int i=0;i<s.size();i++)
{
if(isalpha(s[i]))
{
if(s[i]>'a'&&s[i]<='z')
{
s[i]=toupper(s[i]-1);
}
else if(s[i]=='a')
{
s[i]='Z';
}
else if(s[i]>'A'&&s[i]<='Z')
{
s[i]=tolower(s[i]-1);
}
else if(s[i]=='A')
{
s[i]='z';
}
}
else if(isdigit(s[i]))
{
if(s[i]>'0'&&s[i]<='9')
{
s[i]=s[i]-1;
}
else
{
s[i]='9';
}
}
}
return s;
}
int main()
{
string s1,s2;
while(cin>>s1>>s2)
{
cout<<encryption(s1)<<endl<<decryption(s2)<<endl;
}
return 0;
}
查看22道真题和解析
