关于strcpy_s strcat_s 一点问题

最近在学习一些.NET互操作的问题,在用P/INVOKE 调用平台非托管函数时,经常要对字符格式进行转换。

发现strcpy_s 拷贝基本方法和strcpy一样,只是多了一个参数,

numberOfElements

目标字符串缓冲区的大小

也可以只和strcpy一样只用2个参数,但是必须 是数组形式的例:char str[10],char str1[5], 当然最后还要加‘\0’

但如果是指针的话

	char *str,*str1;
	str=new char[10];
	str1=new char[8];
	str1="abc";
	strcpy_s(str,strlen(str1)+1,str1);
	printf("%s",str);

  

是要指定3个参数,不然就报错参数问题了,而且可以不用手动加‘\0’,只需在要拷贝字符长度加1 编译器会把最后一个字符自动转为'\0'。

这样就避免了经常出现L“Buffer is  too  small”的问题

还有 例如 strcat_s 。 wcscpy_s 一样的道理

 

转载于:https://www.cnblogs.com/Breeze-Chen/archive/2013/04/14/strcpy_s.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值