在vs2019中如何正确使用strcat_s函数

#include<stdio.h>

#include<string.h>

char str1[20]="one";

char str2[]="two";

strcat_s(str1,str2);

printf("%s\n",str1);

为何会显示str2未初始化?

这样的代码应该不会出错, 请你把它们都写在一个完整的函数里面,再运行一下。 

我知道两种方法:
1.strcat_s(str1,strlen(str1)+strlen(str2)+1, str2);
将第二个参数设置成字符串1和2的长度加1,多加的1留给空字符。如果拼接后的字符串的长度超过了第二个参数规定的长度,那么程序就会报错,并终止(至少,我的系统会这样)。
2.strcat_s(str1,sizeof(str1),str2);
执行strcat_s后得到的新字符串会存放在字符串1中,所以第二个参数可以给定成str1的大小,如果拼接后的新字符串的大小超过了str1的大小,程序就会报错,并终止(至少在我的系统上是这样的)。