logo

وظيفة Strsep () في C

مقدمة:

سلاسل هي عنصر أساسي في برمجة ، لأنها تجعل من الممكن التواصل مع المستخدمين، وإظهار النتائج، وقراءة الملفات . إنها نوع من آلية إدخال وإخراج البيانات. منذ سلاسل يتم استخدامها باستمرار في بعض القدرات في البرامج التي نقوم بإنشائها، ويعتبر التعامل الفعال مع السلاسل والوظائف التي تعالجها أمرًا بالغ الأهمية.

سيعلمك هذا البرنامج التعليمي كيفية تقسيم النصوص اعتمادًا على المحددات باستخدام طريقة سترسيب (). .

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

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

بناء جملة الدالة Strsep() في لغة C:

 char *strsep(char **restrict stringp, const char *restrict delim); 

شرح الدالة Strsep() في لغة C:

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

من المهم ملاحظة أن هذه الوظيفة تغير نص الإدخال بشكل لا رجعة فيه عن طريق استبدال أحرف فارغة للمحددات. ال رأس 'string.h'. يحتوي على تعريف وظيفة سترسيب (). . يجب علينا دمجها في الكود الخاص بنا على النحو التالي من أجل استخدامها ووظائف إدارة السلسلة الأخرى:

 #include 

كيفية استخدام وظيفة Strsep() في لغة C لتقسيم سلسلة إلى عدة أجزاء

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

mvc جافا

نعلن عن 's_in' سلسلة جنبا إلى جنب مع النص 'دعونا نبدأ البرمجة' و ال مؤشر 'in_Ptr'. في ال الوظيفة الأساسية . ال سلسلة الدالة strsep() وسيطة الإدخال هي هذا المؤشر.

كما وسيطة الإدخال delim ل طريقة سترسيب (). والحرف المحدد المعين، نعلن بالإضافة إلى ذلك 'سلسلة ديل' مع الطابع الفضاء. نعلن بعد ذلك مؤشر 'o_Ptr'. ، والذي يستخدم ك وسيطة الإخراج الخاصة بـ strsep() . ال طريقة الطباعة (). سيستخدم هذا المؤشر كوسيطة إدخال لعرض الجزء المسترد على وحدة تحكم الأوامر.

وبعد ذلك، بعد توريد من السلسلة كالحجة الأولى، 'in_Ptr' المؤشر كمعلمة ثانية، و مؤشر 'o_Ptr'. كوسيطة الإخراج، نسميها وظيفة سترسيب (). . يتم إجراء هذه المكالمة داخل ملف حائط اللوب مع شرط الهروب الذي لا يوجد المزيد من المحددات متى إرجاع strsep (). مؤشر فارغ.

الكود الخاص بهذا المثال هو كما يلي:

 #include #include int main() { char s_in[50] = 'Let's start programming '; char del[20] = ' '; char* in_Ptr = s_in; char* o_Ptr; while ((o_Ptr = strsep(&in_Ptr, del)) != NULL) { printf('%s
', o_Ptr); } return 0; } 

سترسيب () يقسم 's_in' سلسلة كلمة بكلمة، مما يؤدي إلى إنتاج سلسلة جديدة في كل مرة، والتي يتم عرضها بعد ذلك على سطر جديد في وحدة التحكم بالأوامر، كما هو موضح أدناه؛

انتاج:

 Let's start programming 

خاتمة

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

اختبار البرمجيات