memcpy() 函数
memcpy() 是一个库函数,它在“string.h”头文件中声明——用于将一块内存从一个位置复制到另一个位置(也可以认为是将一个字符串复制到另一个位置) .
memcpy() 的语法:
memcpy(void*str1, const void* str2, size_t n);
它复制n
字节str2
至str1
。
示例 1)将一个字符串复制到另一个(一个字符串的所有字节都复制到另一个)
#include <stdio.h>
#include <string.h>
#define MAX_CHAR 50
int main(void) {
char str1[MAX_CHAR] = "Hello World!";
char str2[MAX_CHAR] = "Nothing is impossible";
printf("Before copying...\n");
printf("str1:%s\n",str1);
printf("str2:%s\n",str2);
//copying all bytes of str2 to str1
memcpy(str1, str2, strlen(str2));
printf("After copying...\n");
printf("str1:%s\n", str1);
printf("str2:%s\n", str2);
return 0;
}
输出
Before copying... str1:Hello World! str2:Nothing is impossible After copying... str1:Nothing is impossible str2:Nothing is impossible
示例 2) 将一些字节从一个字节数组复制到另一个数组
#include <stdio.h>
#include <string.h>
#define MAXLEN 11
//function to print array
void printArray(unsigned char str[], int length){
int i;
for(i=0; i<length;i++)
printf("%02X ", str[i]);
printf("\n");
}
int main(void) {
unsigned char arr1[MAXLEN] = {0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0x95};
unsigned char arr2[MAXLEN] = {0};
printf("Before copying...\n");
printf("arr1:"); printArray(arr1, strlen(arr1));
printf("arr2:"); printArray(arr2, strlen(arr2));
//copying 5 bytes of arr1 to arr2
memcpy(arr2, arr1, 5);
printf("After copying...\n");
printf("arr1:"); printArray(arr1, strlen(arr1));
printf("arr2:"); printArray(arr2, strlen(arr2));
return 0;
}
相关用法
- C语言 memset()用法及代码示例
- C语言 moveto()用法及代码示例
- C语言 modf()用法及代码示例
- C语言 moverel()用法及代码示例
- C语言 fread()用法及代码示例
- C语言 feof()用法及代码示例
- C语言 imagesize()用法及代码示例
- C语言 getarcoords()用法及代码示例
- C语言 strcspn()用法及代码示例
- C语言 setlinestyle()用法及代码示例
- C语言 showbits()用法及代码示例
- C语言 sprintf()用法及代码示例
- C语言 outtextxy()用法及代码示例
- C语言 isgraph()用法及代码示例
- C语言 grapherrormsg()用法及代码示例
- C语言 putchar()用法及代码示例
- C语言 tmpnam()用法及代码示例
- C语言 putpixel()用法及代码示例
- C语言 fillellipse()用法及代码示例
- C语言 outtext()用法及代码示例
注:本文由纯净天空筛选整理自 memcpy() function in C with Example。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。