strcmp比较字符串 写入位置异常

#include<stdio.h>
#include<stdlib.h>
#include<string.h>//使用字符串string系列要有#include<string.h>

unsigned int mystrlen(char c[])
{
int i = 0;
for (i = 0; c[i]; i++)
{
}
return i;
}

void use_str()
{
char arr[100] = { 0 };
char d[100] = {0};
int len;
//while (gets(arr) != NULL)
//{
// strcpy_s(d, arr,100);//把字符串从d复印到arr里面
// puts(d);//默认输出字符后换行
// len = mystrlen(arr);
// printf("string的长度=%d", strlen(arr));//如果是sizeof(arr)一直是100
//}
while (scanf_s("%s%s", arr, d) != EOF)
{
printf("strcmp=%d\n", strcmp(arr, d));
}
}

int main()
{
use_str();
}

为什么提醒string位置写入异常

输入字符串,要输入可能最大的字符串长度,例如:scanf_s("%s %s", arr,100, d,100) != EOF)

供参考:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>//使用字符串string系列要有#include<string.h>

unsigned int mystrlen(char c[])
{
    int  i = 0;
    for (i = 0; c[i]; i++)
    {
      ; // 这里少了 ';' 修改,表示循环里啥事都不干
    }
    return i;
}

void use_str()
{
    char arr[100] = { 0 };
    char d[100] = {0};
    int  len;
    //while (gets(arr) != NULL)
    //{
    // strcpy_s(d, arr,100);//把字符串从d复印到arr里面
    // puts(d);//默认输出字符后换行
    // len = mystrlen(arr);
    // printf("string的长度=%d", strlen(arr));//如果是sizeof(arr)一直是100
    //}
    while (scanf_s("%s%s", arr, 100, d ,100) != EOF) //修改
    {
          printf("strcmp=%d\n", strcmp(arr, d));
    }
}

int main()
{
    use_str();

    return 0;
}