本题要求编写程序,将英文字母替换加密。为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。变换规则是:将明文中的所有英文字母替换为字母表中的后一个字母,同时将小写字母转换为大写字母,大写字母转换为小写字母。例如,字母a->B、b->C、…、z->A、A->b、B->c、…、Z->a。输入一行字符,将其中的英文字母按照以上规则转换后输出,其他字符按原样输出
#include<stdio.h>
int main ()
{
int i=0;
char str[5000];
gets(str);
while(str[i]!='\0')
{
if(('a'<=str[i]&&str[i]<='z')||('A'<=str[i]&&str[i]<='Z'))
{ if('a'<=str[i]&&str[i]<='y')
{
str[i]-=31;
printf("%c",str[i]);
}
else if('A'<=str[i]&&str[i]<='Y')
{
str[i]+=33;
printf("%c",str[i]);
}
if(str[i]=='Z')
printf("a");
if(str[i]=='z')
printf("A");}
else
printf("%c",str[i]);
i++;
}
printf("\n");
return 0;
}
为甚麽不行
if ('a' <= str[i] && str[i] <= 'y') {
str[i] -= 32;
printf("%c", str[i]);
} else if ('A' <= str[i] && str[i] <= 'Y') {
str[i] += 32;
printf("%c", str[i]);
}
应该都是 32 ,可查 ascii 表
来个大佬吧
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y
C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html
C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html