strcpy_s函数两个参数和三个参数

转载 2012年03月22日 21:57:52
         看名字明白,它和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 "stdafx.h"
#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)<<"strlen(str)"<<strlen(str)<<endl;
printf(str1);printf("\n");
cout<<str<<endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
    Test();
    return 0;
}

输出为:
strlen(str1): 11
strlen(str): 5
hello world
hello

相关文章推荐

javascript判断函数参数是否传递[比较运算符中的两个等号与三个等号差别]

设有一函数: function msg(p1,p2,p3){   alert(p1);   alert(p2);   alert(p3); } 如何判断某个参数是否传递: //我们可以判...

对于VS中一些较严谨的(_s)函数如strcpy_s的第二个参数的问题

在学习中发现strcpy_s中第二个参数不能随便写。开始我碰到这个比较严谨的函数时我故作聪明,将第二个参数使用strlen()代替。但拿不严谨的小聪明去解决严谨的函数问题必然问题一大堆。 今天这一个...

关于main函数两个参数

  • 2013年01月04日 19:10
  • 27KB
  • 下载

C语言中的可变参数函数 三个点“…”printf( const char* format, ...)

第一篇  C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为:  int printf( const char* format, ...);  它除...

关于函数参数表中的三个点表示什么——略做改动

标准库提供的一些参数的数目可以有变化的函数。例如我们很熟悉的printf,它需要有一个格式串, 还应根据需要为它提供任意多个“其他参数”。这种函数被称作“具有变长度参数表的函数”, 或简称为“变参...

C语言可变参数函数及三个宏va_start、va_arg和va_end的使用

一、可变参数函数的实例大家熟知的printf()函数声明如下:    int  printf(const char * format, ...);它除了有一个参数format固定以外,后面跟的参数的个...
  • c80486
  • c80486
  • 2011年06月25日 14:51
  • 1470

关于函数参数表中的三个点表示什么

[转]关于函数参数表中的三个点表示什么 http://apps.hi.baidu.com/share/detail/23716112 标准库提供的一些参数的数目可以有变化的函数...

C语言中可变参数函数 三个点“…”

C语言中可变参数函数 三个点“…” 第一篇 C语言编程中有时会遇到一些参数个数可变的函数,例如printf()函数,其函数原型为: int printf( const char* format, ...

关于main函数的三个参数

每一C 程序都必须有一main()函数, 可以根据自己的爱好把它放在程序的某 个地方。有些程序员把它放在最前面, 而另一些程序员把它放在最后面, 无论放 在哪个地方, 以下几点说明都是适合的。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:strcpy_s函数两个参数和三个参数
举报原因:
原因补充:

(最多只允许输入30个字)