void *memcpy(void *str1, const void *str2, size_t n)
参数
str1 -- 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
str2 -- 指向要复制的数据源,类型强制转换为 void* 指针。 const关键字可以保证str2的内容不被修改
n -- 要被复制的字节数。
1.整个数组或者字符串的直接拷贝
例如:将数组a的前50个值复制到b数组中
int a[100],b[50];
memcpy(b, a, sizeof(b));
2.分段拷贝数组或者字符串的值
例如:将数组a的前50个值拷贝到b, 50到75的值拷贝到c, 75到100的值拷贝到d
int a[100],b[50],c[25],d[25];
memcpy(b, a, sizeof(b)) //b只能拷贝50个值
memcpy(c,a+50, sizeof(c) //从a的第50个值开始拷贝
memcpy(d,a+75, sizeof(d) //从a的第75个值开始拷贝
对于字符串也是一样的,例如:
#include <stdio.h>
#include<string.h>
int main() {
char *s="www.csdn.com";
char d[20];
memcpy(d, s+4, 4);// 从第5个字符(c)开始复制,连续复制 4个字符(csdn)
// 或者
//memcpy(d, s+5*sizeof(char), 6*sizeof(char));
d[5]='\0'; //字符串的最后一个字符必须是'\0'
printf("%s\n", d);
return 0;
}