كيفية استخدام دالة substr () في C ++

How Use Substr Function C



طريقة قطع أي جزء من سلسلة تسمى سلسلة فرعية. توجد الدالة substr () في C ++ لإنشاء سلسلة جديدة عن طريق قطع جزء معين من سلسلة. ال سلسلة. h يجب تضمين ملف المكتبة لاستخدام هذه الوظيفة. هذه الوظيفة لها حجتان. تحتوي الوسيطة الأولى على موضع البداية للسلسلة الجديدة ، وتحتوي الوسيطة الثانية على طول السلسلة. تم شرح طريقة استخدام دالة substr () في C ++ في هذا البرنامج التعليمي.

المتطلبات المسبقة

قبل التحقق من أمثلة هذا البرنامج التعليمي ، يجب عليك التحقق من تثبيت برنامج التحويل البرمجي g ++ أم لا في النظام. إذا كنت تستخدم Visual Studio Code ، فقم بتثبيت الملحقات الضرورية لتجميع التعليمات البرمجية المصدر لـ C ++ لإنشاء التعليمات البرمجية القابلة للتنفيذ. هنا ، تم استخدام تطبيق Visual Studio Code لتجميع وتنفيذ كود C ++.







بناء الجملة

سلسلة فرعية (size_t pos = 0، size_t len ​​= npos) const ؛



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



مثال 1: استخدام بسيط لـ substr ()

يوضح المثال التالي الاستخدام الأكثر شيوعًا وبسيطًا لوظيفة substr (). قم بإنشاء ملف C ++ مع التعليمات البرمجية التالية لإنشاء سلسلة فرعية من قيمة سلسلة. تم تعيين سلسلة من عدة كلمات في متغير سلسلة. بعد ذلك ، يكون موضع البداية الصالح وطول السلسلة الفرعية في قيم وسيطة الدالة substr (). ستتم طباعة كل من السلسلة الأصلية والسلسلة الفرعية بعد تنفيذ الكود.





// تضمين المكتبات الضرورية
#يشمل
#يشمل


intالأساسية() {
// تحديد متغير سلسلة
ساعات::سلسلةoriginalstr='مرحبًا بك في Linuxhint'؛
// قص السلسلة الفرعية باستخدام substr ()
ساعات::سلسلةnewstr=originalstr.الجزء الفرعي (أحد عشرو9)؛
// اطبع السلسلة الأصلية
ساعات::كلفة <<'السلسلة الأصلية هي:' <<originalstr<< 'ن'؛
// طباعة السلسلة الفرعية
ساعات::كلفة <<'السلسلة الفرعية هي:' <<newstr<< 'ن'؛

إرجاع 0؛
}

انتاج:

وفقًا للكود ، فإن السلسلة الأصلية هي ' مرحبًا بك في LinuxHint '. 11 أعطت موضع البداية للسلسلة الفرعية التي تمثل موضع الحرف 'L' ، و 9 أعطت كقيمة طول السلسلة الفرعية. ' LinuxHint عاد 'كمخرج للدالة substr () بعد تنفيذ الكود.



مثال 2: استخدام substr () بناءً على موضع سلسلة محددة

سيُنشئ الكود التالي السلسلة الفرعية بعد البحث عن موضع السلسلة المعينة. قم بإنشاء ملف C ++ مع التعليمات البرمجية التالية لاختبار التعليمات البرمجية. تم تحديد قيمة سلسلة من الكلمات المتعددة في الكود. بعد ذلك ، يتم البحث عن موضع سلسلة معينة في السلسلة الرئيسية باستخدام وظيفة find (). تم استخدام الدالة substr () لإنشاء سلسلة فرعية تبدأ من بداية السلسلة إلى قيمة الموضع التي سيتم إرجاعها بواسطة دالة find ().

// تضمين المكتبات الضرورية
#يشمل
#يشمل
استخدام مساحة الاسمساعات؛

intالأساسية()
{
ساعات::سلسلةstrData= 'أحب برمجة C ++'؛

// لنجد موضع '-' باستخدام str.find ()
intموقع=strData.تجد('برمجة')؛

// سنحصل على السلسلة الفرعية حتى هذا النمط
ساعات::سلسلةnewstr=strData.الجزء الفرعي(0، موقع)؛

ساعات::كلفة <<strData<< 'ن'؛
ساعات::كلفة <<newstr<< 'ن'؛

إرجاع 0؛
}

انتاج:

وفقًا للكود ، فإن قيمة السلسلة الرئيسية هي ، أنا أحب برمجة C ++ وقيمة سلسلة البحث هي ، برمجة' الموجود في السلسلة الرئيسية. إذن ، الناتج هو ' أنا أحب C ++ 'بعد تنفيذ الكود.

مثال 3: استخدام substr () مع معالجة الاستثناءات

تم استخدام الدالة substr () مع معالجة استثناء في الكود التالي. سيتم إنشاء الاستثناء إذا تم إعطاء موضع بداية غير صالح في دالة substr (). قم بإنشاء ملف C ++ مع التعليمات البرمجية التالية لاختبار التعليمات البرمجية. في كتلة try ، تم تعيين قيمة سلسلة من كلمة واحدة ، وتم استخدام موضع بداية غير صالح في الدالة substr () التي ستثير استثناءً وتطبع رسالة الخطأ.

// تضمين المكتبات الضرورية
#يشمل
#يشمل

intالأساسية() {
محاولة{

// تحديد متغير سلسلة
ساعات::سلسلةoriginalstr='Linuxhint'؛
// قص السلسلة الفرعية باستخدام substr ()
ساعات::سلسلةnewstr=originalstr.الجزء الفرعي (أحد عشرو9)؛
// طباعة السلسلة الفرعية
ساعات::كلفة <<'السلسلة الفرعية هي:' <<newstr<< 'ن'؛
}
يمسك (مقدار ثابتساعات::خارج النطاق) {
ساعات::سير << 'الموقف خارج النطاق.ن'؛
}
إرجاع 0؛
}

انتاج:

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

مثال 4: استخدام substr () لتقسيم السلسلة

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

// تضمين المكتبات الضرورية
#يشمل
#يشمل
#يشمل

intالأساسية(){
// تحديد السلسلة
ساعات::سلسلةسلسلة البيانات= 'PHP: C ++: Python:'؛
// تحديد الفاصل
ساعات::سلسلةفاصل= ':'؛
// قم بتعريف متغير المتجه
ساعات::المتجهاللغات{}؛
// نعلن متغير عدد صحيح
intموقع؛
// قم بتعريف متغير السلسلة
ساعات::سلسلةخارجي؛
/ *
قم بتقسيم السلسلة باستخدام دالة substr ()
وإضافة الكلمة المقسمة إلى المتجه
* /

في حين ((موقع=سلسلة البيانات.تجد(فاصل)) !=ساعات::سلسلة::npos) {
اللغات.إدفع إلى الخلف(سلسلة البيانات.الجزء الفرعي(0، موقع))؛
سلسلة البيانات.محو(0، موقع+فاصل.الطول())؛
}
// طباعة كل الكلمات المقسمة
ل (مقدار ثابت تلقاءي &خارجي:اللغات) {
ساعات::كلفة <<خارجي<<ساعات::endl؛
}
إرجاع 0؛
}

انتاج:

وفقًا للكود ، فإن قيمة السلسلة الرئيسية هي PHP: C ++: Python وقيمة المحدد هي ، : ' . سيظهر الإخراج التالي بعد تنفيذ البرنامج النصي أعلاه.

استنتاج

الغرض الرئيسي من استخدام دالة substr () هو استرداد سلسلة فرعية من سلسلة نصية عن طريق ذكر موضع البداية وطول السلسلة الفرعية. تم شرح الاستخدامات المختلفة لهذه الوظيفة في هذا البرنامج التعليمي باستخدام أمثلة متعددة لمساعدة مستخدمي C ++ الجدد على استخدامها بشكل صحيح في التعليمات البرمجية الخاصة بهم.