【求助帖】关于字符
问一下,('A'<=sle && sle<='Z')里面的‘A’是表示65还是表示A,为啥我把sle定义成整型和定义成char类型都可以和‘A’比较大小?还是说前面定义sle的类型不同后面的'A'也会跟着转换。
#include<stdio.h>
int main()
{
intsle;
printf("请输入一个字符:");
scanf("%d",&sle);
if('A'<=sle && sle<='Z')
{ sle = sle +32;
printf("%c\n",sle);
}
else if ('a'<=sle && sle<='z')
{ sle = sle -32;
printf("%c\n",sle);
}
return 0;
本帖最后由 jackz007 于 2019-4-19 23:40 编辑
在计算机内部,每一个字符都是用编码来表示的,字符 'A' 和整型数 65 其实是一回事,65 是字符 'A' 的编码。如果把数字 65 显示成字符,就会是 'A'。如果把字符 'A' 显示成数字,就是65。
char 和 int 其实都是整型数,只是二者的字节长度不同,能够表达的数值范围不同而已。所以,在 -128 ~ 127 的数值范围内,使用 char 和 int 表达字符编码的效果是完全一样的。例如,int 65 和 char 65 都一样可以表达字符 'A'。
页:
[1]