int main()
{
int ch;
printf("please input a digital(between 0 and 9):\n");
scanf("%d", &ch);
if(ch >= 0 && ch <= 9)
{
printf("%c", '0'+ch);
}else{
printf("input error!\n");
}
}
关键的地方是:字符0(也即'0')加上一个整数(不要太大了,即不要超过ASCII的127),得到的值还是一个字符;如果是两个字符相减,则得到一个整数,该整数是两个字符之差(比如 'c' - 'a',得到int型的2)