有一行代码,已按下面规律译成密码:例如:A➡Z,a➡z,……

有一行代码,已按下面规律译成密码:例如:A➡Z,a➡z即第i个字母变成第(26-i+1)个字母.其他字符不需改变。
那么首先需要解决的问题就是怎样变换字母,我们知道第一个大写字母的ASCII码是65,那么在ASCII码计算中,
第i个大写字母理解:
第1个字母A应该是65(ASCII码)-64=1
第2个字母B应该是66-64=2
……(以此类推)
那么清楚这点之后,我们来开始转换
26-i+1=26-(a[i]-64)+1 =26+64+1-a[i]=91-a[i]
那么第(26-i+1)个字母,即第91-a[i]个字母的ASCII码应该是91-a[i]+64
所以在转换大写字母是应该用**155-a[i]**来计算

具体代码如下。

#include<stdio.h>
int main()
{
	int i,n;
	char a[80];
	printf("请输入一行电文:\n");
	gets(a);
	printf("\n电文是:");
	puts(a);
	i=0;
	while(a[i]!='\0')
	{
		if(a[i]>='a'&&a[i]<='z')
		   a[i]=219-a[i];
		else if(a[i]>='A'&&a[i]<='Z')
		   a[i]=155-a[i]; 
		else
		   a[i]=a[i]; 
		i++;   		
	}
	n=i;
	printf("\n密码是:");
	for(i=0;i<n;i++)
	{
		if(a[i]!='\0')
		    printf("%c",a[i]);
	}
	return 0;	
}

运行结果如下。
运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lsy的博客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值