输入数字空格输出字符

问题遇到的现象和发生背景

输入一个四位数字,空格输出对应数字字符
利用ASCII码输出字符哪里出错了

用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <string.h>
int main()
{
    char str(int y);
    int a;
    scanf_s("请输入一个四位数字:%d", &a);
    str(a);
    return 0;
}
char str(int y)
{
    int b,c,d,e;
    b = y / 1000;
    c = (y % 1000) / 100;
    d = (y % 1000) % 100 / 10;
    e = y - 1000 * b - 100 * c - 10 * d;
    int a[10];
    a[0] = b + 48;
    a[1] = c + 48;
    a[2] = d + 48;
    a[3] = e + 48;
    printf("%c %c %c %c", a[0], a[1], a[2], a[3]);
    return 0;
}
运行结果及报错内容

img

scanf_s("请输入一个四位数字:%d", &a);
这真是一个扯淡的写法
你这样写,那么输入的时候必须输入“请输入一个四位数字:1990”才行,否则格式不对,a得不到赋值
你的“请输入一个四位数字:”应该写在printf里而不是scanf里

char str(int x[]); 这里声明的是一个参数为数组的,但是char str(int y) 你实现和传的数都是一个整数,估计是用错了吧