【c语言】strcpy、strncpy与memcpy三者的区别-创新互联

strcpy()

strcpy()用来复制字符串

创新互联建站是专业的易县网站建设公司,易县接单;提供成都做网站、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行易县网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

其原型为
char* strcpy(char * destn, const char * src );

  1. dest 为目标字符串指针,src 为源字符串指针。
  2. strcpy() 把src所指的由NULL结束的字符串复制到dest 所指的数组中,返回指向 dest 字符串的起始地址。
  3. 源字符串必须以 ‘\0’ 结束。
  4. 目标空间必须足够大,以确保能存放源字符串。
  • 仅用于复制字符串,不仅会复制字符串的内容,还会将源字符串中的 ‘\0’ 拷贝到目标空间。
strncpy

strncpy()用来复制字符串的前n个字符

其原型为
char * strncpy ( char * dest, const char * src, size_t num );

  1. dest 为目标字符串指针,src 为源字符串指针,num为拷贝的字读数。
  2. strncpy()会将字符串src前n个字符拷贝到字符串dest。
  3. 如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。
  4. 一旦遇到0以后,后面被拷贝的字节就全部是 0
  • 仅用于复制字符串,并且是指定的前n个字符,但不会追加结束符’\0’
memcpy

memcpy()提供了一般内存的复制,对于需要复制的内容没有限制

其原型为
void * memcpy ( void * dest, const void * src, size_t num );

dest 为目标指针,src 为源指针。num为字节数。
memcpy()会将src前n个字节拷贝到dest中。

  • 可以复制任意内容,不仅限于字符串,同时也需要指定复制长度。
总结
  1. strcpy只能复制字符串,并且是整个字符串
    strncpt只能复制字符串,但可以指定个数
    memcpy可以复制任意类型的数据,并且可以指定个数
  2. strcpy遇到被复制字符的串结束符"\0"才结束,所以容易溢出。
    strncpy,memcpy则是根据其第3个参数决定复制的长度。
  3. strncpy一旦遇到0以后,后面被拷贝的字节就全部是 0。
    memcpy 是不关注被拷贝的内容是什么的。
  4. 复制字符串时用strcpy,strncpy,而需要复制其他类型数据时则一般用memcpy。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

网页标题:【c语言】strcpy、strncpy与memcpy三者的区别-创新互联
网站URL:https://www.cdcxhl.com/article40/dooieo.html

成都网站建设公司_创新互联,为您提供网站营销面包屑导航网页设计公司网站内链网站设计微信公众号

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作