C语言 显示strcpy出错 求大神解释 编译器是vs2013

#include"stdio.h"#include"string.h"main(){charstr1[]="whatare";charstr2[]="youdoing?"... #include "stdio.h"
#include "string.h"
main()
{
char str1[] = "what are";
char str2[] = "you doing?";
strcpy(str1, str2);
printf("%s \n",str1);
}

错误
错误 1 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
展开
 我来答
anofolder
推荐于2017-11-26 · TA获得超过160个赞
知道答主
回答量:32
采纳率:0%
帮助的人:19.7万
展开全部
是vs准备弃用strcpy的,安全性较低,所以微软提供了strcpy_s来代替,如果你想继续使用strcpy的,main前面加上#pragma warning(disable:4996)即可
匿名用户
2014-02-20
展开全部
str1不够长,你设置跟str2一样长
追问
str1[40]后仍然报错 还是一样错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
在大围山拉小提琴的冷杉
2014-02-20 · TA获得超过369个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:224万
展开全部
因为你定义的是两个字符串,第一个字符串比第二个要短,所以你这样copy会越界的。
VC6.0 不会检查,但是VS会进行检查的。

建议使用strncpy()函数,这样安全,但是不会全部copy进去。

或者你可以定义的时候str1[] str2[]都指定一下分配的空间,比如15.,str1[15] str2[15]这样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式