计算机大部分时候使用的编码格式都是ASCIi (美国信息交换标准代码)
而在ASCII内,数字使用十六进制的10个值表示,它们分别是
| 十六进制 | 代表数字 |
|---|---|
| 0x30 | 0 |
| 0x31 | 1 |
| 0x32 | 2 |
| 0x33 | 3 |
| 0x34 | 4 |
| 0x35 | 5 |
| 0x36 | 6 |
| 0x37 | 7 |
| 0x38 | 8 |
| 0x39 | 9 |
而字符的话是在其他十六进制值内,范围为 0x20 ~ 0x7E (不包括上表),具体就不展开了,可自行编写代码1查看或者查看这篇内容ASCII
于是只需要做一个简单的判断语句则可,如下
int main()
{
char c;
printf("请输入一个字符: ");
scanf("%c", &c);
if (c < 0x30 || c > 0x39) {
printf("你输入的字符为: %c", c);
} else {
printf("请不要输入数字! %d", c);
// 此处会显示为ASCII码的十进制值,而非你输入的数字,至于为什么。
// 请多了解计算机编码与进制
}
return 0;
}
for(int x=0x20; x<0x7F; x++){printf("%c", x);} ↩︎



