c++中输入a要变成A输出为什么要减去32

来源:百度知道 编辑:UC知道 时间:2024/05/13 05:12:16
我是新手希望能给解释一下下面代码:
#include "stdio.h"
void main()
{
char c1 = 'a';
c1=c1+ 32;
printf("结果%c\n",c1);
}
#include "stdio.h"
void main()
{
char c1 = 'a';
c1=c1- 32;
printf("结果%c\n",c1);
}

其实写成减32并不是一个良好的编程风格

最好这么写:

#include "stdio.h"
void main()
{
char c1 = 'a';
c1=c1-('a'-'A'); //a和A的ASCII码值分别为97和65,这么写其实就是减32,可读性还比较好
printf("结果%c\n",c1);
}

先看下ASCII码表
http://www.weste.net/tools/ASCII.asp

ASCII码可以和int型值相互转换的,而a和A对应的码值分别为97和65

你看下ASCII码表,就会清楚了,'a'和'A'的ASCII码差32.
ASCII码表:http://blog.163.com/apull720/blog/static/5265572008510115314259/

因为大小写字母的ASCll码相差32.小写字母减去32变为大写字母,大写字母加32变小写字母

因为它们的ASCII码相差32呀!!