首页 百科知识 字符串英文

字符串英文

时间:2024-10-17 百科知识 版权反馈
【摘要】:假设A和B之间约定的英文加密规律为:首先,为所有的字母规定了一个顺序,a,b,c,d,…,52,A要发出的英文按如下方式加密,将任何一个字母转为序号为这个字母的3倍的字母,如果序号的3倍超过了52,则进行取余运算,以使值落在52内,以对应相应的字母。

4.3.4 字符串应用举例

例4-6 地下工作者A与上级B之间常使用电报联系,为了保密,A发给B的电文需首先翻译成英文,再将英文按一定规律加密,然后将加密后的电文通过电报局发给B,B接到电文后,需先解密,再翻译,才能读出A给B的信息。假设A和B之间约定的英文加密规律为:

首先,为所有的字母规定了一个顺序,a,b,c,d,…,z,A,B,C,…,Z,依次编号为1,2,3,…,52,

A要发出的英文按如下方式加密,将任何一个字母转为序号为这个字母的3倍的字母,如果序号的3倍超过了52,则进行取余运算,以使值落在52内,以对应相应的字母。

例如:字母a的序号为1,转换为c,字母b的序号为2,转换为f,字母A的序号为27,转换为序号为27*3%52=29的字母,即字母C,以此类推,字母Z的依然转为字母Z。

试编程将从键盘中输入的一串英文转化为相应的密文。

算法分析:

本例首先从键盘输入明文,再依次将明文的各字符按规律转换即可。

要将明文的一个字符ch进行转换,首先需得到明文字符ch的序号,如ch为小写字母,则其序号为ch−'a'+1;如为大写字母,则为ch−'A'+27。当得到密文字符的序号num后,如其值在1到26之间,则相应的字符的ASCII码为num+'a'−1,如果值在27到52之间,则为num−27+'A'。

将明文的字符依次按上面的规律转换便可得到密文,最后需为密文字符串加上结束标志。

参考程序如下:

img365

img366

程序的运行结果如图4.3.6所示。

img367

图4.3.6 字符加密

常见的编程错误4.3

img368 在处理字符串数组时,忘记考虑NULL终止符'\0'。

img369 忘记用NULL字符'\0' 终止一个新建的字符串。

img370 忘记换行字符'\n'是一个输入字符的有效数据。

img371 在使用字符串库函数、字符库函数和转换库函数时,忘记分别包含string.h、ctype.h,和stdlib.h头文件。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈