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

كيف تعمل وظيفة ستركبي في ج? أمثلة الوصف والاستخدام

وظيفة ستركبي هي واحدة من أكثر الوظائف شيوعا في لغة البرمجة سي. يسمح لك بنسخ محتويات سطر واحد إلى آخر. تأخذ الدالة وسيطتين-السلسلة المصدر والسلسلة الهدف ، ونسخ الأحرف من السلسلة المصدر إلى السلسلة الهدف حتى تتم مصادفة حرف نهاية السطر '\0'.

وظيفة ستركبي لديها النموذج التالي: شار * ستركبي(شار* ديست ، كونست شار * سرك);

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

  1. "،الوجهة);
  2. العودة 0;
  3. }
  4. كيف تعمل وظيفة ستركبي في ج?
  5. أمثلة الوصف والاستخدام

أمثلة الاستخدام:

ما هي وظيفة ستركبي في ج?

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

أمثلة على استخدام دالة ستركبي

المشاكل والاستثناءات المحتملة عند استخدام وظيفة ستركبي

  1. سؤال وجواب
  2. ما هو الغرض من وظيفة ستركبي في ج?
  3. كيف تعمل وظيفة ستركبي في ج?
  4. هل من الممكن استخدام وظيفة ستركبي لنسخ سلسلة إلى مجموعة من الأحرف?

كيف تعمل وظيفة ستركبي في ج?

  • يتم استخدام وظيفة ستركبي في لغة البرمجة ج لنسخ سلسلة من مجموعة حرف واحد إلى آخر. إنه جزء من مكتبة ج القياسية (سلسلة.ح) ولديه النموذج الأولي التالي:
  • شار * ستركبي(شار * ديست ، كونست شار * سرك);

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

وظيفة ستركبي يعمل على النحو التالي:

تبدأ الدالة نسخ الأحرف من سلسلة سرك إلى سلسلة ديست من الحرف الأول.

بعد كل نسخة حرف ناجحة ، يتم زيادة المؤشر إلى سلسلة سرك والمؤشر إلى سلسلة ديست من قبل واحد.

يستمر نسخ الأحرف حتى يتم نسخ الحرف الفارغ '\ 0 ' ، مما يشير إلى نهاية السطر.

بعد نسخ السلسلة بنجاح ، تقوم الدالة بإرجاع مؤشر إلى سلسلة ديست.

وظيفة ستركبي لديها العديد من الجوانب الهامة التي تحتاج إلى النظر فيها:

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

الدالة لا تحقق من وجود حرف نول إنهاء '\ 0 ' في سلسلة سرك. إذا كانت سلسلة سرك لا تحتوي على حرف فارغ أو رقمه أكبر من حجم المخزن المؤقت ديست ، ثم لن يتم إيقاف النسخ وقد يحدث تجاوز سعة المخزن المؤقت.

مثال على استخدام دالة ستركبي:

# تشمل

# تشمل

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

شار سرك[100] = "مرحبا ، العالم!";

شار ديست [100];

ستركبي(ديست، سرك);

  • "،ديست);
  • }

- المؤشر إلى المصفوفة التي السلسلة

.

ومع ذلك ، من المهم مراعاة ذلك

وظيفة ستركبي

لا تحقق من تجاوز. هذا يعني أنه عند نسخ سلسلة من

المصدر

إلى

الوجهة

، تحتاج إلى التأكد من أن المصفوفة مدببة

إلى حسب الوجهة

لديه مساحة كافية لتخزين السلسلة.

أمثلة الاستخدام:

Пример 1:

# تشمل

# تشمل

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

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

وجهة شار [20];

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

برينتف ("Скопированная строка: ٪ ق" ، الوجهة);

العودة 0;

}

Результат:

Hello: مرحبا ، العالم!

Пример 2:

# تشمل

# تشمل

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

مصدر شار [] = "وداعا!";

وجهة شار[10];

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

برينتف ("Скопированная строка: ٪ ق" ، الوجهة);

  • العودة 0;
  • }

Результат:

Goodbye: وداعا!

ما هي وظيفة ستركبي في ج?

النموذج الأولي من وظيفة ستركبي يبدو مثل هذا:

ديست هو مؤشر إلى السطر حيث سيتم نسخ محتويات سطر آخر.

سرك هو مؤشر إلى الخط ليتم نسخها.

وظيفة ستركبي نسخ الأحرف من السلسلة التي أشار إليها سرك إلى السلسلة التي أشار إليها ديست. يبدأ النسخ من بداية السلسلة ويستمر حتى تتم مصادفة الحرف '\0' (حرف فارغ) ، وهو الحرف النهائي للسلسلة.

نتيجة وظيفة ستركبي هو مؤشر إلى السلسلة التي تم نسخ المحتويات.

# تشمل

# تشمل

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

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

وجهة شار [20];

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

برينتف ("سلسلة الوجهة: ٪ س

"،الوجهة);

العودة 0;

}

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

سيكون إخراج البرنامج على النحو التالي:

سلسلة الوجهة: مرحبا ، العالم!

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

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

وظيفة ستركبي() هي واحدة من وظائف المكتبة القياسية ج ومصممة لنسخ سلسلة من صفيف حرف واحد إلى صفيف حرف آخر.

بناء جملة الدالة ستركبي () كما يلي:

شار * ستركبي(شار * ديست ، كونست شار * سرك)

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

مثال على استخدام وظيفة ستركبي() :

مصدر شار [] = "مثال";

وجهة شار[10];

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

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

ستكون نتيجة تنفيذ الدالة ستركبي () في هذا المثال هي السلسلة"مثال".

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

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

نضع في اعتبارنا أيضا أن وظيفة ستركبي() لا تحقق من وجود حرف الصفر زائدة ('\0') في سلسلة المصدر. إذا كانت السلسلة المصدر لا تحتوي على حرف صفري ، فستكون نتيجة تنفيذ الوظيفة قيمة غير متوقعة.

أمثلة على استخدام دالة ستركبي

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

الميزة الرئيسية لوظيفة ستركبي هي سهولة استخدامها وكفاءتها عند العمل مع سلاسل متغيرة الطول.

مثال 1:

# تشمل

# تشمل

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

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

وجهة شار [20];

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

برينتف ("النتيجة: ٪ ق

"،الوجهة);

العودة 0;

}

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

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

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

المثال 2:

# تشمل

# تشمل

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

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

وجهة شار [6];

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

برينتف ("النتيجة: ٪ ق

"،الوجهة);

العودة 0;

}

في هذا المثال ، يتكون صفيف الوجهة من 6 أحرف فقط. عند محاولة نسخ السلسلة " مرحبا ، العالم!"من مجموعة المصدر ، فإن وظيفة ستركبي نسخ فقط أول 5 أحرف وإنهاء السلسلة مع حرف فارغ ، لأنه لا يوجد مكان لنسخ السلسلة الكاملة.

ستكون النتيجة في هذه الحالة عرض السلسلة "مرحبا".

المثال 3:

# تشمل

# تشمل

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

مصدر شار []="";

وجهة شار[10];

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

إذا (سترلين (الوجهة) = = 0) {

برينتف ("النتيجة: سلسلة فارغة

");

} آخر {

  1. برينتف ("النتيجة: ٪ ق

    "،الوجهة);

  2. }

    العودة 0;

  3. }

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

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

المشاكل والاستثناءات المحتملة عند استخدام وظيفة ستركبي

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

لا فحص طول السلسلة:

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

لا تحقق من وجود الحرف الفارغ النهائي:

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

استخدام غير صحيح: