回 帖 发 新 帖 刷新版面

主题:[原创]C++基础编程

C++基础程序设计   一个菜鸟的疑问???


 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',就是类型转换有问题,但是我却不知道如何下手解决这个错误,望各位指道,不胜感激。。。。

回复列表 (共2个回复)

沙发

str2[i]=str1+26-i; 这一句 str2[i]类型是 char;
而str1+26+i很显然类型是 char []或者 char *.

这就是类型不匹配的错误。

板凳


将else if(str1[i]>='a' && str1[i]<='z') str2[i]=str1+26-i;换成else if(str1[i]>='a' && str1[i]<='z') str2[i]=*str1+26-i;

我来回复

您尚未登录,请登录后再回复。点此登录或注册