天天看點

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

繼續閱讀