- 在用VS2020写代码时,发现strcpy()函数无法用,大概就是不安全推荐用“strcpy_s()‘代替。
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. HELLO WORLD C:\Users\xinka\Documents\C_progect\HELLO WORLD\main.cpp 11
- 函数定义:char *strcpy(char *dst,char const *src);
1. 一定要确保dst的空间能容纳src;
2.其实主要问题就是关于覆盖的问题,就是把src中的字符复制到dst中,由于复制时,会将src中的“\0”,也会复制,所以不管dst中原先有多少位,都会被覆盖,因为“\0”后的值无法得到,也就相当于把dst先置空在把src写入。
#include <iostream>
#include <string>
using namespace std;
int main()
{
char dst[15] = "hellostrcpy";
char src[] = "abcd";
strcpy_s(dst, src);
for (int i = 0; i < 16; i++)
{
cout << dst[i] << endl;
}
cout << "dst = " << dst << endl;
}