任务和代码:为使电文保密,往往按一定规律将电文转换成密码,收报人再按约定的规律将其译回原文。加密办法,如图所示,每一个字母的密文是其后第4个字母,若超出了字母的范围,将A看作为Z的下一个字母,将a看作是z的下一个字线,依次顺延。
如″Wonderful!″转换为″Asrhivjyp!″。
输入一行字符,要求输出其相应的密码。
/*
文件名:main.c
作者:小风景
完成日期:2015.9.11
问题描述: 为使电文保密,往往按一定规律将电文转换成密码,收报人再按约定的规律将其译回原文。
加密办法,如图所示,每一个字母的密文是其后第4个字母,若超出了字母的范围,将A看作为Z的下一个字母,将a看作是z的下一个字线,依次顺延。
程序输出:输入一行字符,要求输出其相应的密码。
*/
#include <stdio.h>
int main( )
{
char c;
while ((c=getchar( ))!='\n')
{
if((c>='a'&&c<='z')|| (c>='A'&&c<='Z')) //限定输入的字符是大小写字母
{
c=c+4;
if((c>'Z' && c<='Z'+4) || (c>'z'))
c=c-26; //超出的部分减去26个字母回到26哥字母环中。
}
putchar(c);
}
return 0;
}
运行结果:
总结:程序中已经选限定,只对输入的字母进行转换,非字母课直接输出,并且如果c=wxyz ,执行c=c+4,字母已超出z,用c-26 回到字母a-z的循环中。
---------------------------------------------------------------------------------------------------------------------
让时间说真话,虽然我也害怕。