请编程序将:输入单词译成密码,密码规律是:用原来的字母后面的第4个字母代替原来的字母。

求解,用c语言例如,字母'A'后面第4个字母是"E",用"E"代替"A","Z"用"D"代替。例如,输入"China"应译为"Glmre"。请编一程序,将输入单词译为密码... 求解,用c语言
例如,字母'A'后面第4个字母是"E",用"E"代替"A","Z"用"D"代替。例如,输入"China"应译为"Glmre"。
请编一程序,将输入单词译为密码后输出。
(回车结束单词输入;单词最长20,之后截断;输入单词长度为0或者输入不为字母,输出error)。
展开
 我来答
老冯文库
2017-10-17 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部

C语言程序:

#include <stdio.h>
#include <string.h>

#define MAX 100

int isValidate(char str[]);
int isLetter(char ch);
int isLow(char ch);
void encrypt(char source[], char dest[]);

void main()
{
char source[MAX];
char dest[MAX];

printf("input a string : ");
gets(source);


if(isValidate(source) == 0)
{
printf("error\n");
return;
}

if(strlen(source) > 20)
{
source[20] = '\0';
}

encrypt(source, dest);

printf("encrypted : %s\n", dest);
}

/* 判断字符串str是否合法 */
int isValidate(char str[])
{
int i, len;

len = strlen(str);

if(len <= 0)
{
return 0;
}

for(i=0; i<len; i++)
{
if(isLetter(str[i]) == 0)
{
return 0;
}
}

return 1;
}

/* 判断字符ch是否是字母 */
int isLetter(char ch)
{
if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
return 1;
}
else
{
return 0;
}
}

/* 判断字符ch是否是小写字母 */
int isLow(char ch)
{
if(ch >= 'a' && ch <= 'z')
{
return 1;
}
else
{
return 0;
}
}

/* 加密字符串 */
void encrypt(char source[], char dest[])
{
int len = strlen(source);

for(int i=0; i<len; i++)
{
if(isLow(source[i]) == 1)
{
dest[i] = (source[i] - 'a' + 4) % 26 + 'a';
}
else
{
dest[i] = (source[i] - 'A' + 4) % 26 + 'A';
}
}

dest[i] = '\0';
}


运行测试:

input a string : China
encrypted : Glmre
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式