strcpy
char *strcpy(char *s2, const char *s1);
参数:
s1:原字符串
s2:目标字符串
解释:strcpy是一种C语言的标准库函数,strcpy把含有’\0’结束符的字符串复制到另一个地址空间中,返回值的类型为char*
,返回s2的值。
功能:把从s1地址开始且含哟NULL结束符的字符串复制到以s2开始的地址空间。
说明:s1、s2所指内存区域不可以重叠且s2必须有足够的空间来容纳s1的字符串。
strncpy
char *strncpy(char *s2, const char *s1, size_t n);
参数:
s1:表示复制的目标字符数组;
s2:表示复制的源字符数组;
n:表示复制的字符串长度。
解释:strncpy函数用于将指定长度的字符串复制到字符数组中,是C语言的库函数之一,把s1所指向的字符串中以s1地址开始的前n各字节复制到s2所指的数组中,并返回被复制后的s2。
说明:函数strncpy从s1指向的数组中最多复制n个字符(不复制空字符后面的字符)到s2指向的数组中。如果复制发生在两个重叠的对象中,则这种行为未定义。
返回值:
函数strncpy返回s2的值。
strncpy比strcpy的安全性高。
memcpy
void *memcpy(void *s1, const void *s2, size_t n);
参数:
s1:指向用于存储复制内容的目标数组,类型强制转换为void*
指针。
s2:指向要复制的数据源,类型强制转换为void* 指针。
n:要被复制的字节数。
解释:从源内存地址的起始位置开始拷贝若干个字节到目标内存地址中,即从源s2中拷贝n个字节到目标s1中。
说明:
函数memcpy从s2指向的对象中复制n个字符到s1指向的对象中。如果复制发生在两个重叠的对象中,则这种行为未定义。
功能:从源s2所指的内存地址的起始位置开始拷贝n各字节到目标s1所指的内存地址的起始位置中。
返回值:
该函数返回一个指向目标存储区s1的指针。