strncpy strcpy memcpy字符串函数的用法和区别
一、函数说明
strncpy( )
头文件:string.h
函数原型:char *strncpy(char *dest, const char *source, size_t n)
函数作用:把 source 所指向的字符串复制到 dest,最多复制 n 个字符。当 source 的长度小于 n 时,dest的剩余部分将用空字节填充
返回值:返回最终复制的字符串
strcpy( )
头文件:string.h
函数原型:char* strcpy(char* dest, const char* source)
函数作用:把 source 指向的字符串复制到 dest。(必须保证 dest 足够大,能够容纳下 source,否则会导致溢出错误)
返回值:指向最终的目标字符串 dest 的指针
memcpy( )
头文件:string.h
函数原型:void *memcpy(void *dest, const void *source, size_t n)
函数作用:从存储区 source 复制 n 个字节到存储区 dest
返回值:指向目标存储区 dest 的指针
二、函数区别
- 复制内容:strcpy和strncpy用于拷贝字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等
- 指定长度:strcpy 与strncpy 和memcpy的区别在于长度判断,同时strcpy不能指定复制字符串的长度,而strncpy和memcpy可以指定长度
- 遇’\0’判断:若遇到’\0’,strcpy与strncpy则会停止复制
- 注意事项:dest指向的空间要足够拷贝;使用strcpy时,dest指向的空间要大于等于source指向的空间;使用strncpy或memcpy时,dest指向的空间要大于或等于n