输入一个字符串,其中字符串小写字母a 到 z组成。请将此字符串进行加密:
1、将字符串前半部分每个字符减1,后半部分每个字符加1。比如d减1变为c。
2、如果字符串长度为奇数,中间字符不作处理。
3、字符为a、z时做循环处理。比如,字符为a,减1为z;字符为z,加1为a。
1、将字符串前半部分每个字符减1,后半部分每个字符加1。比如d减1变为c。
2、如果字符串长度为奇数,中间字符不作处理。
3、字符为a、z时做循环处理。比如,字符为a,减1为z;字符为z,加1为a。
eg:bewuz 处理后为 adwva。
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
string::size_type s_size,i,mid;
cout << "input a string:";
cin >> str;
s_size = str.length();
if (s_size%2 == 0) //字符串长度为偶数
{
mid=s_size/2;
for (i=0; i<mid; i++)
{
str[i] -= 1;
if (str[i] < 'a')
{
str[i]='z';
}
}
for (i=mid; i<s_size; i++)
{
str[i] += 1;
if (str[i] > 'z')
{
str[i]='a';
}
}
}
else //字符串长度为奇数
{
mid = s_size/2;
for (i=0; i<mid; i++)
{
str[i] -= 1;
if (str[i] < 'a')
{
str[i]='z';
}
}
for (i=mid+1; i<s_size; i++)
{
str[i] += 1;
if (str[i] > 'z')
{
str[i]='a';
}
}
}
cout << "After encrypted str is:";
cout << str << endl;
return 0;
}