将输入单词译成密码
以下是题目要求:请编程序将:输入单词译成密码,密码规律是:用原来的字母后面的第4个字母代替原来的字母。
例如,字母’A’后面第4个字母是"E",用"E"代替"A",“Z"用"D"代替。例如,输入"China"应译为"Glmre”。
请编一程序,将输入单词译为密码后输出。
(回车结束单词输入;单词最长20,之后截断;输入单词长度为0或者输入不为字母,输出error)。
下面是相关代码:
#include<stdio.h>
int main(int argc, char *argv[])
{
char arr[21]={0};//初始化
scanf("%s",arr);//输入字符串,arr本身就代表首元素地址的意思,因此不必加&
arr[20]='\0';//将最后一个元素设置为结束符
if(arr[0]=='\0')
printf("error");
for (int i=0; arr[i]!='\0'; i++)
{
if(arr[i]>='a' && arr[i]<='z' || arr[i]>='A' && arr[i]<='Z')//判断是否为字母
{
if(arr[i]>'v' || arr[i]>'V' && arr[i]<='Z')//是的话再判断是否是最后4位字符
{
arr[i]-= 22;//这里可以写成arr[i]=-26+4
}
else
{
arr[i]+=4;
}
}
else
{
printf("error");
return 0;
}
}
printf("%s\n",arr);
return 0;
}
以上就是全部代码,不懂的可以在评论区问一下。