الانتقال إلى المحتوى الرئيسي

كيفية نسخ صفيف واحد إلى آخر باستخدام لغة ج

في لغة البرمجة سي ، هناك عدة طرق لنسخ مصفوفة إلى أخرى. قد يكون نسخ مصفوفة ضروريا عندما تحتاج إلى إنشاء نسخة من المصفوفة لمزيد من المعالجة أو تعديل البيانات. بالإضافة إلى ذلك ، يساعد نسخ المصفوفة في الحفاظ على البيانات الأصلية وتجنب التغييرات عند العمل مع النسخ المؤقتة.

إن أبسط طريقة لنسخ مصفوفة إلى ج هي استخدام حلقة وتعيين قيم كل عنصر من عناصر المصفوفة الأصلية لعناصر المصفوفة الجديدة. للقيام بذلك ، يمكنك استخدام حلقة أو حلقة في حين. من خلال التكرار من خلال عناصر المصفوفة وتعيينها إلى مصفوفة جديدة ، يمكنك إنشاء نسخة طبق الأصل من البيانات الأصلية.

مجموعة جديدة:");

الهدف الدولي [5];

  1. ميمكبي (تارجيتاراي ، سورسيراي ، سيزوف (سورسيراي));
  2. برينتف ("صفيف المصدر: ");
  3. إلى عن على (كثافة العمليات أنا = 0; أنا < 5; أنا i) {
  4. برينتف ("٪د " ، سورسيراي [ط]);

}

برينتف("

مجموعة جديدة:");

إلى عن على (كثافة العمليات أنا = 0; أنا < 5; أنا i) {

برينتف ("٪د " ، تارجيتاراي [ط]);

}

العودة 0;

}

وهكذا ، في اللغة ج ، هناك عدة طرق لنسخ صفيف واحد إلى آخر. أبسط طريقة هي استخدام حلقة وتعيين عناصر مصفوفة واحدة لعناصر مصفوفة أخرى. وبالإضافة إلى ذلك ، يمكنك استخدام المدمج في ميمكبي() وظيفة ، والذي يسمح لك لنسخ كتل الذاكرة مع حجم معين. يعتمد اختيار طريقة نسخ المصفوفة على المهمة المحددة ومتطلبات أداء البرنامج.

طرق نسخ المصفوفات في اللغة ج

1. من أجل حلقة

2. ميمكبي () وظيفة

3. المؤشرات

4. المدمج في ستركبي () وظيفة

النسخ باستخدام حلقة

باستخدام وظيفة ميمكبي

سؤال وجواب

كيف يمكنني نسخ مصفوفة أحادية البعد إلى أخرى باستخدام لغة ج?

كيف يمكنني نسخ مصفوفة ثنائية الأبعاد إلى أخرى باستخدام لغة سي?

هل هناك وظيفة مدمجة لنسخ المصفوفات في ج?

طرق نسخ المصفوفات في اللغة ج

هناك عدة طرق لنسخ المصفوفات في اللغة ج. دعونا ننظر إليها بمزيد من التفصيل:

1. من أجل حلقة

الطريقة الأبسط والأكثر مباشرة لنسخ المصفوفات في ج هي استخدام أ للحلقة. يبدو التنفيذ كما يلي:

# تشمل

نسخة فارغة (مصدر كثافة العمليات [] ، كثافة العمليات [] ، حجم كثافة العمليات) {

الباحث الأول;

ل (أنا = 0 ؛ أنا < الحجم ؛ أنا i) {

ديست [أنا] = المصدر [أنا];

}

}

كثافة العمليات الرئيسية () {

مصدر كثافة العمليات[] = {1, 2, 3, 4, 5};

[5];

// نسخ مجموعة المصدر إلى ديست

مجموعة كوباراي (المصدر ، ديست ، 5);

// إخراج محتويات مجموعة ديست

إلى عن على (كثافة العمليات أنا = 0; أنا < 5; أنا i) {

برينتف ("٪د" ، دست [ط]);

}

العودة 0;

}

في هذا المثال ، نعلن وظيفة كوباراي ، الذي يقبل مجموعة المصدر ، ديست مجموعة الهدف وحجم حجمها. ثم نستخدم ل حلقة لتكرار من خلال عناصر مجموعة المصدر وتعيينها إلى عناصر مجموعة الهدف.

2. ميمكبي () وظيفة

طريقة أخرى لنسخ المصفوفات في ج هو استخدام وظيفة ممكبي (). يتم الإعلان عن هذه الوظيفة في ملف الرأس. مثال الاستخدام:

# تشمل

# تشمل

كثافة العمليات الرئيسية () {

مصدر كثافة العمليات[] = {1, 2, 3, 4, 5};

[5];

// نسخ مجموعة المصدر إلى ديست

مجموعة ممكبي (ديست ، المصدر ، سيزوف (المصدر));

// إخراج محتويات مجموعة ديست

إلى عن على (كثافة العمليات أنا = 0; أنا < 5; أنا i) {

برينتف ("٪د " ، دست [ط]);

}

العودة 0;

}

في هذا المثال ، نستخدم وظيفة ميمكبي () ، والتي تأخذ مؤشر إلى مجموعة الهدف ، مؤشر إلى مجموعة المصدر ، وحجمها. تقوم الدالة بنسخ محتويات المصفوفة المصدر إلى المصفوفة المستهدفة.

3. المؤشرات

الطريقة الثالثة لنسخ المصفوفات في ج هي استخدام المؤشرات. Пример реализации такого подхода:

#include

void copyArray(int* source, int* dest, int size) {

for(int i = 0; i < size; i++) {

*(dest + i) = *(source + i);

}

}

int main() {

int source[] = {1, 2, 3, 4, 5};

int dest[5];

// Копируем массив source в массив dest

copyArray(source, dest, 5);

// Выводим содержимое массива dest

for(int i = 0; i < 5; i++) {

printf("%d ", dest[i]);

}

return 0;

}

في هذا المثال ، نحدد وظيفة كوباراي ، الذي يأخذ مؤشر إلى مجموعة المصدر ، مؤشر إلى مجموعة الهدف ، ديست ، وحجمها. ثم نستخدم عامل إلغاء المرجع ( * ) وحساب المؤشر لنسخ جميع عناصر المصفوفة المصدر إلى المصفوفة المستهدفة.

4. المدمج في ستركبي () وظيفة

المدمج في ستركبي () وظيفة متاحة أيضا في ج لنسخ الأحرف من سلسلة واحدة إلى أخرى. بينما تم تصميمه للعمل مع السلاسل ، يمكن استخدامه أيضا لنسخ المصفوفات. مثال الاستخدام:

# تشمل

# تشمل

كثافة العمليات الرئيسية () {

مصدر كثافة العمليات[] = {1, 2, 3, 4, 5};

[5];

// انسخ صفيف المصدر إلى صفيف ديست

ستركبي ((شار*)ديست ، (كونست شار*)المصدر);

// إخراج محتويات مجموعة ديست

إلى عن على (كثافة العمليات أنا = 0; أنا < 5; أنا i) {

برينتف ("٪د " ، دست [ط]);

}

العودة 0;

}

هنا نستخدم وظيفة ستركبي () ، وتحويل المؤشرات إلى صفائف إلى نوع شار*. تقوم الدالة بنسخ البايتات من المصفوفة المصدر إلى المصفوفة الهدف ، حيث يتم تمثيل البايتات بأحرف شار.

نتيجة لذلك ، عند استخدام أي من هذه الطرق لنسخ المصفوفات في ج ، من المهم التأكد من أن المصفوفة المستهدفة لها حجم كاف لتخزين جميع عناصر المصفوفة المصدر.

النسخ باستخدام حلقةواحدة من أسهل الطرق لنسخ صفيف واحد إلى آخر في ج هو استخدام حلقة.أولا ، تحتاج إلى إعلان صفيفتين-صفيف المصدر الذي تريد نسخ البيانات منه ، والصفيف المستهدف الذي سيتم نسخ البيانات إليه:
# تشملكثافة العمليات الرئيسية () {// صفيف المصدر

مصدر كثافة العمليات[] = {1, 2, 3, 4, 5};

  • // صفيف الهدف
  • الهدف الدولي[5];
  • // عدد العناصر في المصفوفة

طول كثافة العمليات = حجم (مصدر) / حجم (كثافة العمليات);

// دورة لنسخ البيانات

ل (إنت أنا = 0; أنا < طول ؛ أنا i)

الهدف [أنا] = المصدر [أنا];

}

العودة 0;

}

في هذا الرمز ، نعلن عن صفيفتين: صفيف المصدر وهدف الصفيف المستهدف. ثم نحسب عدد العناصر في مجموعة المصدر باستخدام سيزوف و سيزوف(إنت) المشغلين. بعد ذلك ، في الحلقة ، نقوم بنسخ كل عنصر من عناصر المصفوفة المصدر إلى العنصر المقابل في المصفوفة المستهدفة.

إذا كنت بحاجة إلى نسخ مجموعة من السلاسل (مجموعة من الأحرف) ، فسنحتاج إلى بعض التغييرات:

# تشمل

# تشمل

كثافة العمليات الرئيسية () {

// صفيف المصدر

مصدر شار [] = "مرحبا ، العالم!";

// صفيف الهدف

هدف شار [14];

// عدد الأحرف في المصفوفة

كثافة العمليات طول = سترلين (المصدر);

// حلقة لنسخ البيانات

ل (إنت أنا = 0 ؛ أنا < = طول ؛ أنا i) {

الهدف [أنا] = المصدر [أنا];

}

العودة 0;

}