一个让小写字母后置13位当超过z时再从a开始

来源:百度知道 编辑:UC知道 时间:2024/07/02 08:18:29
#include<stdio.h>
void main()
{int i,j;
char m;
char xx[100];
j=0;
printf("请输入要加密的文章:");
while(1)
{scanf("%c",&m);
if(m!='\n')
xx[j++]=m;
else
break; }
for(i=0;i<j;i++)
{
xx[i]=xx[i]+13;
if(xx[i]>'z')
xx[i]=xx[i]-26;
}
printf("加密后的文章是:");
for(i=0;i<j;i++)
{printf("%c",xx[i]);}
printf("\n");
}
我输入到s的时候就不行了,为什么啊
输入到s时返回的值不是预期的f而是字符s后13的哪个字符。。。。 将 char 类型换成 unsigned char 类型,原因是C环境下使用的是标准ASCII码,0-127,而我们习惯使用的是扩展ASCII码,0-256,所以要声明为 无符号字符型变
unsigned char m;
unsigned char xx[100];

将 char 类型换成 unsigned char 类型,原因是C环境下使用的是标准ASCII码,0-127,而我们习惯使用的是扩展ASCII码,0-256,所以要声明为 无符号字符型变
unsigned char m;
unsigned char xx[100];