English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
عند كتابة برنامج C++، يواجهك دائمًا البحث عن جزء صغير من النص في السلسلة، بالنسبة لـ C، نستخدم غالبًا strstr() أو strchr() هذان الأسلوبان. بينما بالنسبة لـ C++، نستخدم غالبًا find().
C++:#inlcude<string>
C: #include<string.h>
find():البحث في سلسلة واحدة عن حرف معين أو مجموعة من الحروف. إذا تم العثور على تطابق، يتم العودة إلى موضع البداية للطابق الأول؛ إذا لم يتم العثور على أي تطابق، يتم العودة إلى string::npos.
find_first_of():في سلسلة الهدف، يتم البحث عن موضع أول تطابق مع أي حرف في مجموعة الحروف المحددة. إذا لم يتم العثور على أي تطابق، يتم العودة إلى npos.
find_last_of():في سلسلة الهدف، يتم البحث عن آخر موضع يتطابق مع أي حرف في مجموعة الحروف المحددة. إذا لم يتم العثور على أي تطابق، يتم العودة إلى npos.
find_first_not_of():يتم البحث في السلسلة الهدف ويعود إلى موقع العنصر الأول الذي لا يتطابق مع أي حرف في مجموعة الحروف المحددة. إذا لم يتم العثور على مثل هذا العنصر، يتم العودة إلى npos.
find_last_not_of():يتم البحث في السلسلة الهدف ويعود إلى موقع القيمة الأعلى من العنصر الذي لا يتطابق مع أي حرف في مجموعة الحروف المحددة. إذا لم يتم العثور على مثل هذا العنصر، يتم العودة إلى npos.
rfind(): يبحث عن حرف معين أو مجموعة من الحروف في السلسلة من نهاية السلسلة. إذا تم العثور على تطابق، يتم العودة إلى موقع البداية للتطابق الأول؛ إذا لم يتم العثور على تطابق، يتم العودة إلى npos.
find(string, int):المعامل الأول يستخدم لتحديد الحرف الذي يتم البحث عنه، والمعامل الثاني يستخدم لتحديد من أين يبدأ البحث في السلسلة (الموقع الافتراضي للبحث هو 0).
مثال: تطابق السلسلة:
#include "stdafx.h" #include<iostream> #include<math.h> #include<string> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { string T;//السلسلة الأصلية string P;//نموذج while(cin>>T>>P) { int count=0; int begin=-1; while((begin=T.find(P,begin+1))!=string::npos) { count++; {} cout<<count<<endl; {} int z; cin>>z; return 0; {}
هذا هو محتوى الكامل للنصوص التوضيحية لمثال البحث عن الأنماط في سلسلة النصوص باستخدام C++، نأمل أن تكونوا قد مدحتم دروس呐喊~