中易网

凯撒密码用C++编写

答案:2  悬赏:30  
解决时间 2021-02-12 16:41
凯撒密码用C++编写
最佳答案
#include
#include
#include
const int MAX_N=200;
int main(int argc, char *argv[])
{
int i,j,p;
char text[MAX_N];
char alphabet[30];
char op[10];

while(1)
{
printf("1---输入密码表 2---退出\n");
gets(op);

if(strcmp(op,"1")==0)
{
printf("密码表:");
gets(alphabet);

while(1)
{
printf("1---加密 2---解密 3---返回\n");
gets(op);

if(strcmp(op,"1")==0 ||strcmp(op,"2")==0 )
{
printf("输入文本:");
gets(text);

for(i=0;text[i]!='\0';i++)
{
if((text[i]>='a'&&text[i]<='z') || (text[i]>='A'&&text[i]<='Z') )
{
if(strcmp(op,"1")==0)
{
p=text[i]>='a'? (text[i]-'a'):(text[i]-'A');
text[i]=text[i]+ alphabet[p]-(p+'A');
}
else
{
for(j=0;;j++)
if(alphabet[j]==text[i]||alphabet[j]==(text[i]-('a'-'A')))
break;
text[i]= text[i]>='a' ? (j+'a') :(j+'A');
}

}
}//for(i)

if(strcmp(op,"1")==0)
printf("加密后的文本为:" );
else
printf("解密后的文本为:");
printf("%s\n\n",text);

}
else if(strcmp(op,"3")==0)
{
printf("\n");
break;
}
else
{
printf("选择有误!请重新选择!\n");
}
}//while(1)
}

else if(strcmp(op,"2")==0)
{
exit(1);
}
else
{
printf("选择有误!请重新选择!\n");
}
}
return 0;
}

全部回答
#define k 2 //2为推后的字母数 int main() { char a[] = "abcde"; int i = 0; for (i; i<(sizeof(a)-1); i++) printf("%c", (a[i]+k)); return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下雨天我老公在外面开车,应该怎么关心他
windows7任务栏由一层变成两层了怎么换回来?
广州科学城那些公司比较好
红源超市在哪里啊,我有事要去这个地方
射灯有哪几种型号,最大的尺寸和最小的尺寸是
博库网和博库中文网是同一个网站吗
焦作矿务局运销处驻郑办事处地址在什么地方,
女的发了这么一条朋友圈:去买西瓜,我问老板
粤b7525y是谁的车,车主是谁
对讲机充电插口和耳机插口在同一个位置吗?
建设路小学这个地址在什么地方,我要处理点事
万色的益生菌效果怎么样?有什么作用?万色的
下一站,影帝结局是柴谨之和谁在一起了?
求工序能力指数
纬嘉实业发展有限公司地址在哪,我要去那里办
推荐资讯
lol英雄联盟战士排行榜
我想将台式机连上路由 但只有两根有两芯的线
货物盘点的目的与作用?
英国和阿根廷时差多少
关键字:温度补偿型热敏电阻
语文阅读中怎样赏析句子
田耀方推拿保健中心在哪里啊,我有事要去这个
四平哪个理发店头发剪的好?
求数列11,103,1005,10009……前n项和
南阳医专有函授吗?
用“长久”来造句
如何工作和生活中做到诚信与有责任心
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?