strcpy函数在VS2015无法使用的问题

一:原因:一般认为是vs准备弃用strcpy的,安全性较低,所以微软提供了strcpy_s来代替

然而,strcpy_s并没有strcpy好用,我们要想继续在VS2015中使用strcpy该怎么办 呢?下面是几种解决方法

解决方法:

  1.其实在下面的输出错误信息中有解决方法,“To disable deprecation , use _CRT_SECURE_NO_WARNINGS”,意思是我们可以不进行兼容性检查,我们可以在项目-属性-配置属性-c/c++-预处理器-预处理定义里边加上一句:_CRT_SECURE_NO_WARNINGS ,如下图所示

  2.也是在下面的输出信息中,我们可以看到有一处错误代号“ error C4996:”,所以我们可以在程序开头加上一句“#pragma warning(disable:4996)”就行,意思是忽略这个错误,如下图

  3.第三种方法是:我们可以在:项目-属性-配置属性-c/c++中的常规,里面有个SDL选项,关了。还有在代码生成中有个安全检查选项(/GS),关了。虽然这种方法也可以解决这个问题,但是我本人不太提倡这种解决办法,还是前两种解决方法比较好

时间: 2024-10-09 17:17:01

strcpy函数在VS2015无法使用的问题的相关文章

strcpy函数的实现

大家一般觉得名不见经传strcpy函数实现不是非常难,流行的strcpy函数写法是: char *my_strcpy(char *dst,const char *src) { assert(dst != NULL); assert(src != NULL); char *ret = dst; while((* dst++ = * src++) != '\0') ; return ret; } 假设注意到: 1,检查指针有效性: 2,返回目的指针des: 3,源字符串的末尾 '\0' 须要拷贝.

编写一个程序实现strcpy函数的功能

1 #include <stdio.h> 2 #include <string.h> 3 #define N 5 4 5 6 char *mycpy(char *s1, char *s2) 7 { 8 //数组型 9 /* int i; 10 while(s2[i] != '\0') { 11 s1[i] = s2[i]; 12 i++; 13 } 14 s1[i] = '\0'; 15 return s1; */ 16 //指针型 17 char *p = s1; 18 whil

strcpy函数的最优实现方法

微软自带的strcpy函数: (不完善,4分) charcharconstchar char while'\0' return } 最完善的strcpy函数: (推荐使用,10分) charcharconstchar//将源字符串加const,表明其为输入参数不能修改 if//考虑到源字符串和目的字符串有重叠,也即地址相同 return //对源地址和目的地址加非空地址断言 char//备份目的字符串的首地址,由于后面的操作会修改dest值 while'\0' return//为了实现链式操作,

strcmp函数和strcpy函数

(一)strcmp函数 strcmp函数是比較两个字符串的大小,返回比較的结果.一般形式是: i=strcmp(字符串,字符串); 当中,字符串1.字符串2均可为字符串常量或变量:i   是用于存放比較结果的整型变量.比較结果是这样规定的: ①字符串1小于字符串2,strcmp函数返回一个负值; ②字符串1等于字符串2,strcmp函数返回零; ③字符串1大于字符串2,strcmp函数返回一个正值;那么,字符中的大小是怎样比較的呢?来看一个样例. 实际上,字符串的比較是比較字符串中各对字符的AS

通过编写字符复制函数strcpy函数学编程

首先我们先来开一下标准函数中的strcpy长什么样子 C语言标准库函数strcpy,把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间. 原型声明:char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 和 #include <stdio.h> 功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 说明:src和dest所指内存区域不可以重叠且des

strcpy函数的实现【转】

转自:http://www.cnblogs.com/chenyg32/p/3739564.html 已知strcpy函数的原型是: char *strcpy(char *dst, const char *src); 实现strcpy函数 解释为什么要返回char * 假如考虑dst和src内存重叠的情况,strcpy该怎么实现 1.strcpy的实现代码 char * strcpy(char *dst,const char *src) //[1] { assert(dst != NULL &&am

strcpy函数和string类的实现

1 strcpy函数实现 void* memcpy1(void *dst,const void *src,int count){ assert(dst != NULL && src!= NULL && count>=0); void *temp = dst; char *pdst = (char*)dst; char *psrc = (char*)src; if(pdst>=psrc && pdst <= psrc+count-1) { p

memcpy、memmove、memset及strcpy函数实现和理解

memcpy.memmove.memset及strcpy函数实现和理解 关于memcpy memcpy是C和C++ 中的内存拷贝函数,在C中所需的头文件是#include<string.h>, 在C++中需要包含的头文件是#include其函数原型如下: void *memcpy(void *dest, const void *src, size_t n); 其功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中. 库函数中的memcpy不能处理sr

自定义strcpy函数

自定义实现复制函数 <span style="font-size:18px;">/strcpy函数   void strCpy1(char dest[], char source[])   {       int i = 0;       while (source[i] != '\0') {           dest[i] = source[i];           i++;       }       dest[i] = '\0';   }   void strC