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