scanf-s一次性输入两组字符串: 0xC0000005: 写入位置 0x003E3000 时发生访问冲突。

vs2019平台;

img

#include<stdio.h>





typedef struct tiku {
    char timu[100];
    char daan[100];
    char t[100];
    char a[100];
    char b[100];
    char c[100];
    char d[100];
}; struct tiku ti[1001];
int main()
{
    int n, q, i, j, flag = 0;

    scanf_s("%d%d", &n, &q);
    for (i = 0; i < n; i++)
    {
        getchar();
        scanf_s("%s %s", ti[i].timu,ti[i].daan);
        getchar();
    }
    for (j = 0; j < q; j++)
    {
        getchar();
        scanf_s("%s %s %s %s %s", ti[i].t, ti[i].daan, ti[i].b, ti[i].c, ti[i].d);
        getchar();
    }
    for (i = 0; i < n; i++)
    {
        if (ti[i].t == ti[i].timu)
        {
            flag = i;
        }
        if (ti[flag].daan ==ti[flag].a) printf("A\n");
        else if (ti[flag].daan ==ti[flag].b) printf("B\n");
        else if (ti[flag].daan ==ti[flag].c) printf("C\n");
        else if (ti[flag].daan ==ti[flag].d) printf("D\n");
    }
    return 0;
}

0x7A75EF8C (ucrtbased.dll)处(位于 练习赛4.exe 中)引发的异常: 0xC0000005: 写入位置 0x003E3000 时发生访问冲突。
 ###### 我的解答思路和尝试过的方法 调整为结构体。

 ###### 我想要达到的结果 成功运行,完成字符串输入;

scanf_s("%s %s", ti[i].timu,ti[i].daan);修改如下


scanf_s("%s %s", ti[i].timu,100,ti[i].daan,100);

scanf_s("%s %s %s %s %s", ti[i].t, ti[i].daan, ti[i].b, ti[i].c, ti[i].d);修改如下:

scanf_s("%s %s %s %s %s", ti[i].t, 100,ti[i].daan,100, ti[i].b,100, ti[i].c,100, ti[i].d,100);

if (ti[i].t == ti[i].timu),字符数组不能直接用==,修改如下

if (strcmp(ti[i].t, ti[i].timu)==0) //需要包含string.h头文件