c语言vs2022字符数组程序报错

在用VS2022时遇到了这样的报错,但程序功能已经实现了,只是每次输出都会报错,不明白为什么,求解答疑惑[

img


下面是我的代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
void chgSstr(char is[], char os[])
{
    int i, len1,k=0;
    char ch;
    len1 = strlen(is);
    for (i = 0; i <=len1; i++)
    {
        if (is[i] == '\0')
        {
            os[k] = is[i]; break;
        }
        if ('0'<= is[i] && is[i] <= '9')
        {
            for (int j = 0; j <= is[i] - 48; j++)
            {
                os[k++] = is[i]+49;
            }
        }
        else
        {
            if('a'<=is[i]&&is[i]<='z'||'A'<=is[i]&&is[i] <= 'Z')
            os[k++] = is[i];
        }
    }
}
int main()
{
    char is[50]={}, os[50]={};
    scanf_s("%s", is, 51);
    chgSstr(is,os);
    for (int i = 0; os[i] != '\0'; i++)
    {
        if (os[i] != '\0')
            printf("%c", os[i]);
    }
    return 0;
}

scanf_s("%s", is, 51);
这里应该是50,因为你的缓冲区只有50