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

How Use Find_first_of Function C



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

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

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







ميزات دالة find_first_of ()

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



بناء الجملة

string size_t find_first_of (const string & str، size_t pos = 0) const؛
c-string size_t find_first_of (const char * s، size_t pos = 0) const ؛
حجم المخزن المؤقت_ find_first_of (const char * s، size_t pos، size_t n) const ؛
حجم الحرف_ find_first_of (char c، size_t pos = 0) const ؛



مثال 1: ابحث واستبدل الحرف المعين لسلسلة

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





// تضمين لطباعة الإخراج
#يشمل
// تضمين لاستخدام size_t
#يشمل

intالأساسية()
{
// تهيئة متغير سلسلة
ساعات::سلسلةstrData('مرحبًا بك في LinuxHint')؛
// اطبع السلسلة الأصلية
ساعات::كلفة << 'السلسلة الأصلية هي:' +strData<< 'ن'؛
// اكتشف كل موضع الحرف 'i'
ساعات::size_tقائمة البحث=strData.find_first_of('أنا')؛
// كرر الحلقة لاستبدال كل 'i' بـ '@'
في حين (قائمة البحث!=ساعات::سلسلة::npos)
{
strData[قائمة البحث] = '@'؛
قائمة البحث=strData.find_first_of('أنا'،قائمة البحث+1)؛
}
// طباعة السلسلة المعدلة
ساعات::كلفة << 'السلسلة المعدلة هي:' +strData<< 'ن'؛

إرجاع 0؛
}

انتاج:

سيظهر الإخراج التالي بعد تنفيذ الكود أعلاه.



مثال 2: ابحث في الموضع الأول لأحرف البحث

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

// تضمين لطباعة الإخراج
#يشمل

intالأساسية()
{
// تهيئة متغير السلسلة
ساعات::سلسلةstrData( 'البرمجة الأساسية C ++')؛
// قم بتعريف متغير interger لتخزين الموضع
intموقع؛
// ابحث عن الحرف 'C ++'
موقع=strData.find_first_of( 'K ++' )؛
// تحقق من قيمة المركز
لو (موقع> = 0)
{
// اطبع الموضع إذا تم العثور على أي حرف
ساعات::كلفة << 'الشخصية '' <<strData[موقع]
<< '' قد وجد' << 'في الموقع' <<موقع<< 'ن'؛
}

إرجاع 0؛
}

انتاج:

سيظهر الإخراج التالي بعد تنفيذ الكود أعلاه. هنا ، الشخصية ، + 'من السلسلة ،' K ++ 'وجد في الموقع ، 7 من السلسلة الرئيسية ، البرمجة الأساسية C ++ '.

مثال 3: ابحث عن شخصية معينة بعد موضع معين

قم بإنشاء ملف C ++ مع التعليمات البرمجية التالية للبحث عن حرف معين بعد الموضع المعين. يتم تخزين بيانات السلسلة في متغير السلسلة ، ويتم البحث عن سلسلة معينة بعد الموضع ، 13. إذا تم العثور على أي حرف من سلسلة البحث في السلسلة الرئيسية ، فسيتم إرجاع قيمة الموضع.

// تضمين لطباعة الإخراج
#يشمل

intالأساسية()
{
// تهيئة متغير سلسلة
ساعات::سلسلةstrData= 'أكل العيش لا يعيش ليأكل'؛
// اطبع السلسلة الأصلية
ساعات::كلفة << 'السلسلة الأصلية هي:' +strData<< 'ن'؛
// اطبع الموضع الذي تم العثور فيه على آخر حرف
ساعات::كلفة<<'آخر حرف مطابق تم العثور عليه في الموضع:'
<<strData.find_first_of('في'و13) << 'ن'؛
إرجاع 0؛
}

انتاج:

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

مثال 4: ابحث عن موضع أول رقم مطابق

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

// تضمين لطباعة الإخراج
#يشمل
// تضمين للبحث عن البيانات في المتجه
#يشمل
// تضمين لاستخدام بيانات المتجه
#يشمل

intالأساسية()
{
// أعلن عن اثنين من قائمة المتجهات
ساعات::المتجهقائمة 1{10و5و65و31و7}؛
ساعات::المتجهقائمة 2{2و77و5و38و32و55}؛
// ابحث في بيانات list1 في القائمة 2
تلقاءيانتاج=ساعات::find_first_of(قائمة 1.يبدأ()، list1.نهاية()، قائمة 2.يبدأ()، قائمة 2.نهاية())؛
// اقرأ موقف الرقم المطابق
intموقع=ساعات::مسافه: بعد(قائمة 1.يبدأ()، انتاج)؛

// تحقق من أي رقم من list1 يتطابق مع أي عدد من list2
لو (انتاج<قائمة 1.نهاية()) {
ساعات::كلفة << 'الرقم المطابق الأول' <<قائمة 1[موقع] << 'وجدت في الموضع' <<موقع<< 'ن'؛
}
آخر {
ساعات::كلفة << لم يتم العثور على رقم مطابق.ن'؛
}
}

انتاج:

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

استنتاج

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