1、试编写程序,将“China”译成密码。密码规律是:用原来的字母的后4个字母代替原来的字母。例如,字母“A”后面的4个字母是“E”,用“E”代替“A”,因此“China”应译为“Glmre”。用赋初始值的方法使c1、c2、c3、c4、c5这5个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算使c1、c2、c3、c4、c5变为‘G’、‘l’、‘m’、‘r’、‘e’。
2、修改上一程序,其中c1、c2、c3、c4、c5的值用键盘输入,其傎为‘T’、‘o’、‘d’、‘a’、‘y’,对译码规律做如下补充:‘W’用‘A’代替,‘X’用‘B’代替,‘Y’用‘C’代替,‘Z’用‘D’代替,最后在一行上输出加密后的字符。
第一点的问题已经解决(主要是第二点),代码如下(可以不用管我第一段的代码,第一段可以根据个人的习惯来写,只要是c++的语言就行):
#include <stdio.h>
void main()
{
char c1,c2,c3,c4,c5;
scanf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);
c1=c1-22;
c2=c2+4;
c3=c3+4;
c4=c4+4;
c5=c5+4;
printf("%c%c%c%c%c\n",c1,c2,c3,c4,c5);
}
供参考:
#include<stdio.h>
int main()
{
char a[256];
int i = 0;
while ((a[i] = getchar()) && a[i] != '\n')
{
if (a[i] >= 'A' && a[i] <= 'Z')
a[i] = (a[i] - 'A' + 4) % 26 + 'A';
else if (a[i] >= 'a' && a[i] <= 'z')
a[i] = (a[i] - 'a' + 4) % 26 + 'a';
i++;
}
a[i] = '\0';
printf("%s\n", a);
return 0;
}
‘W’用‘A’代替,‘X’用‘B’代替,‘Y’用‘C’代替,‘Z’用‘D’代替
那对于小写字母也是这么循环代替吗?