天天看点

memcpy函数使用说明

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;
 
}
           

继续阅读