C++ 程序设计
有一行电文,已按下面规律译成密码:
A----Z   a----z
B----Y   b----y
C----X   c----x
    .           .
    .           .
    .           .
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母.....非字母字符不变。要求编程序将密码译回原文,并打印出密码和原文。  
#include <iostream>
using namespace std;
int main()
{
    void Change(char str[]);
    char str1[10];
    cout<<"输入密码:";
    cin>>str1;
    Change(str1);
    return 0;
}

void Change(char str1[10])
{
    char str2[10];
    int i;
    for(i=0;i<10;i++)
    {
        if(str1[i]>='A' && str1[i]<='Z') str2[i]=str1[i]+26-i;
        else if(str1[i]>='a' && str1[i]<='z') str2[i]=str1+26-i;
        else str2[i]=str1[i];
    }
    cout<<"密码:"<<str1<<endl;
    cout<<"原文:"<<str2<<endl;
}
以上是我编的代码,但是在编译时if(str1[i]>='A' && str1[i]<='Z') str2[i]=str1[i]+26-i;
        else if(str1[i]>='a' && str1[i]<='z') str2[i]=str1+26-i;这一块出问题了,说是cannot convert from 'char []'to 'char',就是类型转换有问题,但是我却不知道如何下手解决这个错误,望各位知道,不胜感激。。。。