strcpy_s和strcpy()函数功能几乎相同。strcpy函数。就象gets函数一样,它没有方法来保证有效的缓冲区尺寸。所以它仅仅能假定缓冲足够大来容纳要拷贝的字符串。在程序执行时,这将导致不可预料的行为。用strcpy_s就能够避免这些不可预料的行为。
这个函数用两个參数、三个參数都能够,仅仅要能够保证缓冲区大小。
三个參数时:
errno_t strcpy_s(
char *strDestination,
size_t numberOfElements,
const char *strSource
);
两个參数时:
errno_t strcpy_s(
char (&strDestination)[size],
const char *strSource
); // C++ only

样例:

#include<iostream>
#include<cstring>
using namespace std;
void Test(void)
{
char *str1=NULL;
str1=new char[20];
char str[7];
strcpy_s(str1,20,"hello world");//三个參数
strcpy_s(str,"hello");//两个參数但假设:char *str=new char[7];会出错:提示不支持两个參数
cout<<"strlen(str1):"<<strlen(str1)<<endl<<"strlen(str):"<<strlen(str)<<endl;
printf(str1);
printf("\n");
cout<<str<<endl;
}
int main()
{
Test();
return 0;
}
#include<iostream>
#include<string.h>
using namespace std;
void Test(void)
{
char *str1=NULL;
str1=new char[20];
char str[7];
strcpy_s(str1,20,"hello world");//三个參数
strcpy_s(str,"hello");//两个參数但假设:char *str=new char[7];会出错:提示不支持两个參数
cout<<"strlen(str1):"<<strlen(str1)<<endl<<"strlen(str):"<<strlen(str)<<endl;
printf(str1);
printf("\n");
cout<<str<<endl;
}
int main()
{
Test();
return 0;
}

输出为:
strlen(str1): 11        //另外要注意:strlen(str1)是计算字符串的长度,不包含字符串末尾的“\0”!!!
strlen(str): 5
hello world
hello

转载于:https://www.cnblogs.com/mengfanrong/p/4580442.html

strcpy_s与strcpy对照相关推荐

  1. strcpy_s与strcpy的比較

    strcpy_s和strcpy()函数的功能差点儿是一样的.strcpy函数,就象gets函数一样,它没有方法来保证有效的缓冲区尺寸,所以它仅仅能假定缓冲足够大来容纳要拷贝的字符串.在程序执行时,这将 ...

  2. 重温C++之“strcpy_s与strcpy的比较”

    strcpy_s和strcpy()函数的功能几乎是一样的.strcpy函数,就象gets函数一样,它没有方法来保证有效的缓冲区尺寸,所以它只能假定缓冲足够大来容纳要拷贝的字符串.在程序运行时,这将导致 ...

  3. strcpy_s与strcpy

    例子: #include<iostream> #include<cstring> using namespace std;void Test(void) { char *str ...

  4. strcpy、wcscpy与_tcscpy关系 strcpy_s与strcpy比较

    C++标准库函数提供了字符和字符串的操作函数,并提供了其UNICODE版本,如: char *strcpy(char *strDestination, const char *strSource); ...

  5. strcpy_s函数/strcpy函数简介

    strcpy /* *描述:此类函数是用于对字符串进行复制(拷贝). * *参数: * [in] strSource:需要拷贝的字符串 * [out] strDestination:拷贝完成之后的字符 ...

  6. C语言 strcpy 和 strcpy_s 函数区别 - C语言零基础入门教程

    目录 一.strcpy_s 函数/strcpy 函数简介 1.strcpy 函数语法 2.strcpy_s 函数语法 二.strcpy/strcpy_s 函数实战 三.猜你喜欢 零基础 C/C++ 学 ...

  7. strcpy、strcpy_s、strncpy、strncpy_s 字符串拷贝用法

    1.strcpy 原型声明: char *strcpy(char* dest, const char *src); 功能:将以src为首地址的字符串复制到以dst为首地址的字符串,包括'\0'结束符, ...

  8. C4996:'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead.

    使用C语言中字符串的处理函数提示错误 *需包含头文件"string.h" #include "string.h" 以strcpy函数为例 原型:strcpy(s ...

  9. strcpy()、strncpy()和strcpy_s()函数的区别

    1.strcpy()函数 原型声明:char *strcpy(char* dest, const char *src); 头文件:#include <string.h> 和 #includ ...

最新文章

  1. java虚拟机参数-X 与 -XX的区别
  2. 杭电1276--士兵队列训练问题
  3. 【Android NDK 开发】Ubuntu 函数库交叉编译 ( Android 动态库交叉编译 | Android 静态库交叉编译 )
  4. 创建应用服务器连接客户端
  5. 【HTML/CSS】SEO的概念和实现
  6. 设计模式的征途—1.单例(Singleton)模式
  7. 微信小程序|开发实战篇之八-list列表组件及其子组件
  8. Python中的正则表达式找到所有符合要求的字符串
  9. mysql如何开启对外连接?
  10. SpringMVC【开发Controller】详解
  11. R与Python手牵手:特征工程(数值型变换)
  12. 输入流-读取文件内容
  13. ic卡c语言程序,sle4442程序(ic卡程序,C语 - 控制/MCU - 电子发烧友网
  14. 视频编解码(一):ffmpeg编码H.264帧类型判断
  15. python在家创业项目_8种可以让你在家创业的项目
  16. 0672-5.16.1-CDSW中Run Experiments异常分析
  17. 在 Linux中安装中文输入法
  18. 统计学习方法---李航
  19. 判断MySQL安装是否成功的两种验证方法
  20. 浅谈Arrays.asList()方法

热门文章

  1. Android 5.1 Lollipop的Zygote分析——上篇
  2. 新星科技有限公司java_「新星科技」
  3. python实现udp聊天室_python网络编程基础--socket的简介,以及使用socket来搭建一个简单的udp小程序...
  4. Qt WebSocket服务端的简单Demo
  5. redhat yum 安装 mysql_RedHat/CentOS 为yum安装remi源 | 学步园
  6. 安卓通讯录管理软件_安卓又曝严重漏洞,或监控数亿用户,请尽快更新系统补丁!...
  7. 微信小程序怎么在wxml中插入多个图片_兰州小程序开发流程费用推荐品牌_便企网...
  8. 世界对一名颓废者的惩罚——SDOI2019R1游记
  9. 校运动会c语言程序编写,校运动会管理系统报告C语言(含完整代码)
  10. redis一般缓存什么样数据_Redis缓存和MySQL数据一致性方案详解