字符数组存放身份证验证问题

编写程序,设数组中己经存放若干身份证号。
提示:身份证号一般为字符型
("123123199910110321","123123200010301020", "123123200110110545, "123123200200320910”,“123123202305021032“)(日期错误数据是为了保证系统的纠错能力的测试数据,字符串可直接粘贴复制使用)
1)输入某年某月日期,自动给那天过生日的人显示贺词,如果没有人过生日也请给出提示。日期按 8 位输入。比如输入20221030就显示123123200010301020生日快乐,请问这样的问题用c怎么实现?


#include<stdio.h>

int check(char A[],char B[]){
    for (int k = 6; k < 13; k++)
    {
        if (A[k]!=B[k-6])
        {
            return 0;
        }
        
    }
    return 1;
    
}

int main(){
    char *ID[]={"123123199910110321","123123200010301020", "123123200110110545", "123123200200320910","123123202305021032"};    
    char date[8];
    scanf("%s",date);
    int flag=1;
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 8; j++)
        {
            if (check(ID[i],date))
            {
                flag=0;
                printf("%s生日快乐",ID[i]);
                break;
            }
        }
    }
    if (flag)
    {
        printf("没有人生日快乐!");
    }
    
    
    return 0;
}