相同字母的大写与小写之间相差32也就是ASCII码的值在第6位(从最低位为1数起)
而异或的一个显著特点是
与0异或时,它的值不变,
与1异或时,它的值相反。
所以只要将英文字母ASCII码的第6位与1异或,其他位与0异或便可实现大小写的双向转换
----------------解决方案--------------------------------------------------------
太强了
----------------解决方案--------------------------------------------------------
兄弟我写一个最简单的吧:
#include<stdio.h>
main()
{
char c1,c2;
scanf("%c,&c1");
printf("The upper case is %c\n",c1);
c2=c1+'a'-'A';
printf("The lower case is %c\n",c2);
}
----------------解决方案--------------------------------------------------------
而异或的一个显著特点是
与0异或时,它的值不变,
与1异或时,它的值相反。
所以只要将英文字母ASCII码的第6位与1异或,其他位与0异或便可实现大小写的双向转换
----------------解决方案--------------------------------------------------------
太强了
----------------解决方案--------------------------------------------------------
兄弟我写一个最简单的吧:
#include<stdio.h>
main()
{
char c1,c2;
scanf("%c,&c1");
printf("The upper case is %c\n",c1);
c2=c1+'a'-'A';
printf("The lower case is %c\n",c2);
}
----------------解决方案--------------------------------------------------------