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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值