编写一个程序,完成情报(无空格输入)的加密操作。具体规则是将情报上的字母往前移动3位,如字母z变成字母w,字母y变成字母v,字母a移动之后变成字母x,字母b移动之后变成字母y
这个字符直接加3就好了,比如char x=’a’;char y=x+3;
这个可以分两种情况来考虑:
第一,如果是字母表的前三个字母,则将其加上26减去3,以便对应将其从字母表尾部往前移动三个位置;
第二,如果是第三个字母后的字母,则直接减去3即可完成位置移动。
代码如下:
参考链接:
#include <iostream>
using namespace std;
int main(void){
char secret[128];
cout<<"请输入要加密的情报内容:";
cin>>secret;
int i=0;
while(secret[i]!='\0'){
char ch = secret[i];
// 如果是前三个字母,则将其+26再减3,以便将其从字母尾部往前移动三个位置
if((ch>='a'&&ch<='c')||(ch>='A'&&ch<='C')){
ch=ch+26-3;
}else if((ch>='d'&&ch<='z')||(ch>='D'&&ch<='Z')){ // 如果是前三个字母后后面的字母,则直接减去3,即可完成位置移动
ch=ch-3;
}
secret[i]=ch; // 将加密后的字母,放置到当前位置完成加密
i++;
}
// 打印加密后的结果
cout<<"加密后的情报为:"<<secret;
}