主题:[原创]一行电文,打印出密码和原文
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',就是类型转换有问题,但是我却不知道如何下手解决这个错误,望各位知道,不胜感激。。。。
有一行电文,已按下面规律译成密码:
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',就是类型转换有问题,但是我却不知道如何下手解决这个错误,望各位知道,不胜感激。。。。