一段代码的重新整理

来源:百度知道 编辑:UC知道 时间:2024/05/05 01:05:19
有这样一个问题:编制程序,将输入的一行字符加密和解密。加密时,每个字符依次反复加上“4962873”中的数字,如果范围超过ASCII码的
032(空格)~122('z'),则进行模运算。解密与加密相反。编制加密和解密函数,打印各个过程的结果。
例如:加密:the result of 3 and 2 is not 8

得到的密文:xqk zlvyuzqn 6$jtf(9#!&pw #
它的提示是下面的代码,但它不完全,希望各位能重新整理一下,顺便加个注释,谢谢.

#include <iostream.h>
#include <string.h>

char ch=mw[i]+key[i%key.length()]-'0';
if (ch>122) ch=ch-91;
string encode(const strings key,const strings mw)
{
string result;
for(int i=0; i<mw.length();++i)
result+=char((mw[i]+key[i%key.length()]-'0'-32)%91+32);
return result;
}
for (string key,mw;getline(cin,key) && getline(cin,mw);)
cout<<decode(key,mw)<<endl;
希望能给我一段完整的代码,谢谢.
一楼的朋友,为啥输入进去后没显示密文?
可能是我的表达有点问题,我的意思是希望他能在输入the result is .....这段以后,可以显示密文里面的内容..

#include <string>
#include <iostream>
using namespace std;

string encode(const string key, const string mw) //加密函数
{
string result;
for(int i=0; i<mw.length();++i)
{
char ch = mw[i]+key[i%key.length()]-'0';
if (ch>122) ch=ch-91;
result+=char((mw[i]+key[i%key.length()]-'0'-32)%91+32);
}
return result;
}

void main()
{
string key, mw;
while ((getline(cin, key)) && (getline(cin, mw))) //等待输入密钥和明文
cout<<encode(key, mw)<<endl; //加密后打印密文

}

这确实是完整的……建工程后只考这些进去,能够运行正常。
有的啊。先输入密钥再输入明文,程序会显示密文然后退出。如果你是以普通方式运行的,显示完立刻就退出了可能看不见。
char c;
scanf("%c", c);
在末尾加这个可以暂缓退出,显示完后再随便输入一个字符才退出。