编程论坛
注册
登录
编程论坛
→
C++教室
Strcpy和Strncpy的区别
zhanghang123
发布于 2010-10-25 09:27, 1241 次点击
在学习C++中,经常遇到Strcpy和Strncpy,两个都是拷贝函数,谁能帮我解释一下二者的区别?
7 回复
#2
ciweitou163
2010-10-25 11:35
两个都是把from的值复制到to
/*
最大限度的把from的值复制到to,如果from的字符少于count,就会用‘\0’来填补
*/
char
*strncpy(
char
*to,
const
char
*from, size_t count );
/*
不进行边界检测,这样很容易造成from或to的溢出
*/
char
*strcpy(
char
*to,
const
char
*from );
#3
m21wo
2010-10-25 16:45
strncpy带3个参数指定了长度,strcpy带2个参数没指明复制的长度
!
#4
2010-10-27 14:09
建议用strncpy 在VS2005以后 如果你用strcpy拷贝字符串的会 编译器会给个警告的
strncpy 有个长度的参数 这样以免字符串越界
#5
pangding
2010-10-27 18:40
嗯,上面的已经说得很清楚了~
#6
小葳的宝宝
2010-10-28 22:54
学习了!!
#7
青青子惊
2010-10-30 19:41
其实本来我没看到过strncpy但是看到了n我懂了
#8
ljt
2010-10-30 20:34
回复 3楼 m21wo
strcpy也有带三个参数的哦,上次我在论坛上看到的,MSDN上面都是两个参数。
1