身寸白勺女少 发表于 2019-4-19 22:43:28

【求助帖】关于字符

问一下,('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:39:06

本帖最后由 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]
查看完整版本: 【求助帖】关于字符