加密字符串

输入一个全英文的字符串,输出加密后的字符串。
文字信息在传递之前希望先加密。加密的含义是将每个字符转变为另一个字符,加密规则是:
为26个英文字母规定一个序号,a,b,c,d,…,z依次编号为1,2,3,4,…,26.
字符串中每个英文字符的序号加上字符串的长度再加上该字符在字符串中的位置(从0开始计数),得到新字符的序号。如果新序号大于26,则求余得到1-26之间的序号,该字符就转换为新序号对应字符。
大小写都遵从此规则。
例如:要加密的字符串是:AbxY,则长度为4,A转换为E,b转换为g,x转换为d,Y转换为F。

#include<stdio.h>
int main()
{
	int j,n,i;
	int a=0;
	char str[80],ch[80],tran[80];
	printf("Input a word:");
	gets(str);
	j=0;
	while(str[j]!='\0')
	{	a++;
		ch[j]=str[j];
		j++;
	}
	n=j;
	
	for(j=0;j<n;j++)
	{	if((ch[j]>='A')&&(ch[j]<='Z')&&(ch[j]-64+a+j>27))
			ch[j]=(ch[j]-64+a+j)%26+64;
		else if((ch[j]>='a')&&(ch[j]<='z')&&(ch[j]-96+a+j>27))
			ch[j]=(ch[j]-96+a+j)%26+96;
		else
			ch[j]=ch[j]+a+j;
	}
	printf("The encoded word is ");
	for(j=0;j<n;j++)
		putchar(ch[j]);
	printf("\n");
	return 0;
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Angostura

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值