char 是一种整数,也是一种特殊的类型:字符。
用单引号表示的字符字面量:'a','1'
''也是一个字符
printf 和 scanf 里用 %c 来输入输出字符
字符的输入和输出
char c;
scanf("%c",&i);
printf("c = %d\n",c); // 输出 49
printf("c='%c'\n",c); // 输出 1输入'1'这个字符给char c
char d = '1'; // 输出 49
char c = 1; // 输出 1
如果两个比较是不相等的,而且在计算机内部会有特点的数字来表达字符 '1',作为字符来输出 '1' 就是等于 49 ,如果按照整数来输出就是 1
如果是 char b = 'A';
那输出结果就是65
int i;
char c = 1;
scanf("%d",&i);
c = i; // char不能使用 %d 输出所以要赋值给 c
printf("c = %d\n",c); // 1
printf("c='%c'\n",c); // ' '
int i;
char c = 49;
scanf("%d",&i);
c = i; // char不能使用 %d 输出所以要赋值给 c
printf("c = %d\n",c); // 49
printf("c='%c'\n",c); // '1''1' de ASCII 编码是 49 所以当 c == 49 ,它就代表 '1
为什么‘A‘的ASCII码是65,‘a‘是97呢
65的二进制是0100 0001,97的二进制是0110 0001,它们的后五位0 0001都表示十进制的1,说明'A','a'是第一个字母。如果你尝试着把字母表的'B','b'的ASCII转换为二进制会发现后五位都表示为十进制的2。数字字符和对应整数的二进制只有2位之差,比如字符'1'(即49)的二进制为0011 0001,整数1的二进制为0000 0001,两者的后四位均为0001,均表示十进制的1
字符计算
一个字符加一个数字得到 ASCII 码表中那个数之后的字符
两个字符的减得到它们在表中的距离
大小写转换
字母在 ASCII 表中是顺序排列的
大写字符和小写字母是分开排列的,并不在一起
'a'-'A'可以得到两段之间的距离
a + 'a' - 'A' 可以把 一个大写字母变成小写字母
a + 'A' - 'a' 可以把 一个小写字母变成大写字母
逃逸字符
用来表达无法印出来的控制字符或特殊字符,它由 \ 开头,后面跟上另一个字符,两个字符合起来,组成一个字符
\b 回退一格
\t 到下一个表格位
\n 换行
\r 回车
\" 双引号
\' 单引号
\\ 反斜杠本身