【c语言】strcpy、strncpy与memcpy三者的区别-创新互联
strcpy()
strcpy()用来复制字符串
创新互联建站是专业的易县网站建设公司,易县接单;提供
成都做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行易县网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
其原型为
char* strcpy(char * destn, const char * src );
- dest 为目标字符串指针,src 为源字符串指针。
- strcpy() 把src所指的由NULL结束的字符串复制到dest 所指的数组中,返回指向 dest 字符串的起始地址。
- 源字符串必须以 ‘\0’ 结束。
- 目标空间必须足够大,以确保能存放源字符串。
- 仅用于复制字符串,不仅会复制字符串的内容,还会将源字符串中的 ‘\0’ 拷贝到目标空间。
strncpy
strncpy()用来复制字符串的前n个字符
其原型为
char * strncpy ( char * dest, const char * src, size_t num );
- dest 为目标字符串指针,src 为源字符串指针,num为拷贝的字读数。
- strncpy()会将字符串src前n个字符拷贝到字符串dest。
- 如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。
- 一旦遇到0以后,后面被拷贝的字节就全部是 0
- 仅用于复制字符串,并且是指定的前n个字符,但不会追加结束符’\0’
memcpy
memcpy()提供了一般内存的复制,对于需要复制的内容没有限制
其原型为
void * memcpy ( void * dest, const void * src, size_t num );
dest 为目标指针,src 为源指针。num为字节数。
memcpy()会将src前n个字节拷贝到dest中。
- 可以复制任意内容,不仅限于字符串,同时也需要指定复制长度。
总结
- strcpy只能复制字符串,并且是整个字符串
strncpt只能复制字符串,但可以指定个数
memcpy可以复制任意类型的数据,并且可以指定个数 - strcpy遇到被复制字符的串结束符"\0"才结束,所以容易溢出。
strncpy,memcpy则是根据其第3个参数决定复制的长度。 - strncpy一旦遇到0以后,后面被拷贝的字节就全部是 0。
memcpy 是不关注被拷贝的内容是什么的。 - 复制字符串时用strcpy,strncpy,而需要复制其他类型数据时则一般用memcpy。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文标题:【c语言】strcpy、strncpy与memcpy三者的区别-创新互联
转载源于:
http://wjwzjz.com/article/dooieo.html