我们可以通过ASCLL表知道字母A的ASCLL值为65,a的ASCLL值为97,他们之间的差距是32.
所以我们可以这样写一小段代码------
include<stdio.h>
int main()
{
char ch1, ch2 ;
printf("请输入一个字母\n") ;
scanf("%c",&ch1) ;
if (ch1>='A' && ch1<= 'Z')
{
ch2 = ch1 + 32 ;
}
else
{
ch2= ch1 - 32 ;
}
printf("这个大/小写字母小写为:%c\n",ch2) ;
printf("转换前的字母ASCLL码为:%d\n",ch1) ;
printf("转换后的字母ASCLL码为:%d\n",ch2) ;
return 0 ;
}
这一段代码是有小漏洞的,那么我再写一个基本没有漏洞的。
#include<stdio.h>
int main()
{
char ch ;
printf("请输入一个字母\n") ;
scanf("%c",&ch) ;
if (ch >= 'a' &&ch <= 'z')
{
ch-= 32 ;
printf("转换后为%c\n",ch) ;
}
else if (ch>= 'A' &&ch<= 'z')
{
ch += 32;
printf("转换后为%c\n",ch) ;
}
else
{
printf("请输入字母") ;
}
}
大家可以自己试试的。