求帮忙改进C语言程序凯撒加密英文字母。

要求把我的程序改为可以只对英文字母进行加密解密。要代码。感谢!... 要求把我的程序改为可以只对英文字母进行加密解密。要代码。感谢! 展开
 我来答
蓝天白245
2012-05-05
知道答主
回答量:18
采纳率:0%
帮助的人:15.2万
展开全部
那你要何种加密解密方式啊?不过大体上实现要知道英文字母所对应的ASCLL码。原因:控制范围可以通过ASCLL码来判断是否是英文字母,其次在计算机内部是以ASCLL码形式储存字符。加密与解密道理相同只不过是互逆过程罢了。相信你应该可以自己写代码了。
追问
我们老师说叫我们对它进行限制,我就加了句n%=26,结果执行下来的加密和解密全乱套了,连原来可以加密的字母都加密不了了,加密出来就是一些符号。这我就想不通了。我是刚开始学C语言的,好多都还不会。
追答
#include
main(){
char arr[80],arr1[80];int i,j=0;int b[80];
gets(arr);
for(i=0;i='a'&&arr[i]='A'&&arr[i]<='Z'))//判断是否是英文
{arr[i]=arr[i]+10;b[j]=i;j++;} //b[j]用于记录英文位置方便解密时寻找。
}
puts(arr);
j=0;
for(i=0;i<80;i++) //解密
{if(i==b[j])
{arr1[i]=arr[i]-10;j++;}
else arr1[i]=arr[i]; //注意加解密的逆过程
}
puts(arr1);
return 0; }
此程序注意问题:
1:加密时要记住加密处在字符串或是字符数组中的位置,方便解密。
2:要知道汉字的储存形式与字符类似,加密不当会出现汉字,不过这应该没关系,记住加密与解密是互逆过程即可。
3:不要在加密时溢出ASCLL码。
4:加密方法很多,注意选择。只要你想到的就可以,加密不就是防止别人认出来么。除非你的老师有这方面的要求。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式