English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
كتابة مكتبة C void *memcpy(void *str1, const void *str2, size_t n) من منطقة التخزين str2 نسخ n البايت إلى منطقة التخزين str1.
هذا هو إعلان memcpy()
void *memcpy(void *str1, const void *str2, size_t n)
str1 -- يشير إلى مصفوفة الهدف التي سيتم نسخ المحتوى إليها، يتم تحويل النوع إلى إشارة void*.
str2 -- يشير إلى مصدر البيانات التي سيتم نسخها، يتم تحويل النوع إلى إشارة void*.
n -- عدد الوحدات التي سيتم نسخها.
يعود هذا الدالة إلى إشارة إلى منطقة التخزين str1
هذا المثال يوضح استخدام memcpy()
// نسخ النص إلى مصفوفة dest #include <stdio.h> #include <string.h> int main () { const char src[50] = "https://ar.oldtoolbag.com"; char dest[50]; memcpy(dest, src, strlen(src)+1); printf("dest = %s\n", dest); return(0); }
لنقوم بترميز و تشغيل البرنامج أعلاه، مما سيؤدي إلى نتائج التالي:
dest = https://ar.oldtoolbag.com
استنساخ 6 حرف متسلسل من الرقم 11 بدءًا في s إلى d:
#include <stdio.h> #include<string.h> int main() { char *s = "http://ar.oldtoolbag.com"; char d[20]; memcpy(d, s+11, 6); // من الرقم 11 من الحرف(r) بدءًا، تكرار 6 حرف(w3codebox) // أو memcpy(d, s+11*sizeof(char), 6*sizeof(char)); d[6]='\0'; printf("%s", d); return 0; }
لنقوم بترميز و تشغيل البرنامج أعلاه، مما سيؤدي إلى نتائج التالي:
w3codebox
تغطية الجزء الموجود مسبقًا من البيانات:
#include<stdio.h> #include<string.h> int main(void) { char src[] = "***"; char dest[] = "abcdefg"; printf("استخدام memcpy قبل: %s\n", dest); memcpy(dest, src, strlen(src)); printf("بعد استخدام memcpy: %s\n", dest); return 0; }
لنقوم بترميز و تشغيل البرنامج أعلاه، مما سيؤدي إلى نتائج التالي:
قبل استخدام memcpy: abcdefg بعد استخدام memcpy: ***defg