核心思想:读入%c,输出%d
C 语言里:char 本质就是小整数 ,直接把 char 变量用%d打印,就输出它的 ASCII 码,不需要调用特殊转换函数。
完整可提交代码
#include <stdio.h>
int main()
{
char ch;
scanf("%c", &ch); //读入一个字符
printf("%d\n", ch); // %d 按整数输出,就是ASCII码
return 0;
}
原理
char ch存字符,比如输入A,内存存的数字是65%c→ 打印看得见的字符A%d→ 打印这个字符对应的 ASCII 数字65
举例子:
- 输入
A,输出65 - 输入
0,输出48 - 输入
a,输出97
另一种写法(强制类型转换,效果一模一样)
printf("%d\n", (int)ch);
写不写
(int)强制转换都可以,printf 用%d输出 char 会自动提升成 int。
易错坑
不要写成 scanf("%d", &ch)!%d是读数字,读字符必须用%c。