注册 登录
编程论坛 C++教室

这个简单加密程序要怎么实现?顺便问一下怎么在从键盘输入获得一句话的同时保留空格

icedge 发布于 2007-05-21 22:16, 2389 次点击
题目:编制程序,将输入的一行字符以加密的形式输出,然后将其解密,解密的字符序列与输入的正文进行比较,吻合时输出解密的正文,否则输出解密失败。
加密时,将每个字符的ASCII码依次反复加上“4962873”中的数字,并在32(' ')~122('z')之间做模运算。


这 是钱能主编的《c++程序设计教程(第二版)》第三章的一道习题。我对题意都不是太明白,求模运算的意义是什么?还有在加密时是不是连输入内容的空格也都 一起处理,看书上举得一个例子好像是这样,但是我试过,如果直接用向量获得输入内容的话,得到的是一串连续的字母,根本没有空格。

[此贴子已经被作者于2007-5-21 22:19:14编辑过]

7 回复
#2
kisscjy2007-05-21 22:53

用getche()函数吧,可以连空格都可以处理的~~~

#3
icedge2007-05-22 18:21
那这个题目中作模运算的目的是什么呢?
#4
独孤风2007-05-25 21:09

是不是把ASCII码都取值,在数字的大小上加加减减吧?

#5
icedge2007-05-25 22:34
是这个意思,不过总是实现不了,前几位结果和书上给出的例子一样,但是后面一部分就不一样了,我主要是想用向量实现,因为向量可以用.push_back来控制容量,也就避免了一些垃圾数据的产生。用数组实现的话好像会容易一些,不过要提前定好容量,至于那些垃圾数据就只好在后期加入一些过滤条件了,但是这样会影响输入内容的多少,如果超过数组容量,多出的部分就不会被处理了。
#6
weishj2007-05-27 18:10
我感觉用string比向量方便吧,
string str;
cin>>str;
for(int i=0;i<str.length();i++)
//对每个字符作你要求的操作后直接输出
不过我还没试呀

#7
icedge2007-05-27 23:16
用string变量是可以正常的输出空格,但是在对没个字符依次处理的时候好像就不行了吧?
#8
icedge2007-05-27 23:17
有谁看过这个教材的?最好能给个答案,试过好多次了,实在做不出这个题了。
1