English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل تعليمي أساسي بلغة C

تحكم في العملية في لغة C

الوظائف في لغة C

العدد في لغة C

المرجع في لغة C

السلسلة في لغة C

مبادئ التركيب في لغة C

ملف لغة C

C أخرى

دليل مرجع لغة C

طريقة استخدام مكتبة C memcpy() ومثال

مكتبة القياسية C - <string.h>

كتابة مكتبة 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

مكتبة القياسية C - <string.h>