加密程序

(1)编写函数,实现对字符串进行简单加密。
void code(char *data, int n)
对data的字符串进行加密,data中的非字母字符不作修改。加密方式与用户给定的加密码n有关,即字符串中的字母往前移动n位变成密文。
例如 n=2,则Z->X, z->x, Y->W, y->w, … ,C->A, c->a,
特例是B->Z, b->, A->Y, a->y。
(2)编写函数
void decode(char *data, int n)
它接受一个加过密的字符串作为参数,任务是重现原来的信息,用于解密。
实现效果(举例):
请输入字符串: I Am a Cat.
请输入加密码:2
加密后的字符串:G Yk y Ayr.
解密后的字符串:I Am a Cat.

#include<stdio.h>
#include<string.h>
void code(char *s,int n){//加密函数
	char ch;
	int len=strlen(s);//获得字符串长度
	for(int i=0;i<len;i++){
		if(s[i]<='z'&&s[i]>='a'){//情况一:小写字母
			if(s[i]-n<'a'){
				s[i]=s[i]-n+26;
			}else{
				s[i]=s[i]-n;
			}
		}else if(s[i]<='Z'&&s[i]>='A'){//情况二:大写字母
			if(s[i]-n<'A'){
				s[i]=s[i]-n+26;
			}else{
				s[i]=s[i]-n;
			}
		}
		else{//情况三:其他字符
			s[i]=s[i];
		}
	}
}
void decode(char *s,int n){//解码函数
	char ch;
	int len=strlen(s);//获得字符串长度
	for(int i=0;i<len;i++){
		if(s[i]<='z'&&s[i]>='a'){//情况一:小写字母
			if(s[i]+n>'z'){
				s[i]=s[i]+n-26;
			}else{
				s[i]=s[i]+n;
			}
		}else if(s[i]<='Z'&&s[i]>='A'){//情况二:大写字母
			if(s[i]+n>'Z'){
				s[i]=s[i]+n-26;
			}else{
				s[i]=s[i]+n;
			}
		}
		else{//情况三:其他字符
			s[i]=s[i];
		}
	}
}
int main(){
	char a[20];
	printf("请输入字符串:\n");
	gets(a);//输入字符串到数组,输入结束标志为换行符
	int n;
	printf("请输入加密码:\n");
	scanf("%d",&n);
	code(a,n);
	printf("加密后的字符串:\n");
	puts(a);//输出字符串
	printf("解密后的字符串:\n");
	decode(a,n);
	puts(a);
	return 0;
}

运行结果:在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值