打印

[提问] 哪位会写这个C++程序???

LS正解

如果把26个字母,用1~26表示,那么向后移3位就是POS+3

但最后几位会越界,%26,对其取余,就让它回到头上了

例如:z(26),结果应该为:3
计算方法:(26+3)%3

TOP

原来这样~~~谢谢啦~~~

TOP

调式过 正确

#include <iostream>
#include <cstring>
using namespace std;
class cchange{
private:
char *text;
public:
cchange()
{text=0;}
void input(char *s)
{text=s;
}
void change()
{
  char *temp=text,*cc;
  cc=temp;
  
  while (*temp)
  {
     if (*temp+3>'z' && *temp+3>'a')
        *temp='a'+(*temp+2-'z');
                else if (*temp+3>'Z' && *temp+3>'A' && *temp+3<='Z'+3)
     *temp='A'+(*temp+2-'Z');
    else
     *temp=*temp+3;
    temp++;
  }
  
}
void display()
{ cout<<"加密后的字符串是:"<<text<<endl;
}
};
int main()
{
cchange myclass;
char *vv=new char[100];
cout<<"请输入要加密的字符串:";
cin>>vv;
myclass.input(vv);
myclass.change();
myclass.display();
return 0;
}

TOP

你们的程序好像都有问题额,现在这个头文件iostream.h好像不需要写.h,还有一些别的等等,好多小错误啊

TOP

恩,    我上面的那个是正确的,    支持下

TOP

书上一般都有的,不要用类,直接用C就能写出来.
Hold out and you will succeed in time

TOP

要做一个判断就是x,y,Z,的时候要减三了 ,因为再加就要出界了。"}"

TOP

3楼的错了,13楼的对

TOP

Processed in 0.124256 second(s), 5 queries, Gzip enabled