السلام عليكم ورحمة الله وبركاته
كيف يمكن البحث عن نص في سلسلة نصية ؟ ماهي دالات البحث عن نص في سلسلة نصية ؟ وكيف يمكن عمل ذلك
جزاكم الله خيراً
السلام عليكم ورحمة الله وبركاته
كيف يمكن البحث عن نص في سلسلة نصية ؟ ماهي دالات البحث عن نص في سلسلة نصية ؟ وكيف يمكن عمل ذلك
جزاكم الله خيراً
السلام عليكم و رحمة الله
طبعا يمكنك ان تعمل البحث مباشرة. مثال لذلك لنفرض انك تبحث عن كلمة "محمد" فى ال سلسلة "كم عندك محمد, عندى سى++"
يمكنك ان تعمل مقارنة من اول النص المراد البحث فيه يعن تعمل الاتى
تقارن اول حرف فى "محمد" م باول حرف فى السلسلة "ك". لم يحدث تطابق
تقارن اول حرف فى "محمد" م بثانى حرف فى السلسلة "م". يحدث تطابق
تقارن ثانى حرف فى "محمد" ح بثالث حرف فى السلسلة " ". لم يحدث تطابق لان نرجع الى البداية
تقارن اول حرف فى "محمد" م بثالث حرف فى السلسلة " ". لم يحدث تطابق
تقارن اول حرف فى "محمد" م برابع حرف فى السلسلة "ع". لم يحدث تطابق
تقارن اول حرف فى "محمد" م بخامس حرف فى السلسلة "ن". لم يحدث تطابق
تقارن اول حرف فى "محمد" م بسادس حرف فى السلسلة "د". لم يحدث تطابق
تقارن اول حرف فى "محمد" م بسابع حرف فى السلسلة "ك". لم يحدث تطابق
تقارن اول حرف فى "محمد" م بثامن حرف فى السلسلة " ". لم يحدث تطابق
تقارن اول حرف فى "محمد" م بتاسع حرف فى السلسلة "م". يحدث تطابق
تقارن ثانى حرف فى "محمد" ح ب 10 حرف فى السلسلة "ح". يحدث تطابق
تقارن ثالث حرف فى "محمد" م ب 11 حرف فى السلسلة "م". يحدث تطابق
تقارن رابع حرف فى "محمد" د ب 12 حرف فى السلسلة "د". يحدث تطابق, الان نعلن اننا وجدناها عند بعد 9
لكن هذه طريقة عقيمة و تستهلك الكثير من الوقت و الحسابات
اكيد هناك طرق اخرى متقدمة
مثال
طيب لو أردت البحث عن عبارة بين كلمتين ؟؟
مثلا في بسم الله الرحمن الرحيم
اريد البحث عن أي عبارة بين بسم والرحيم
وراح يطلع لي الله الرحمن
كيف ؟؟
لا اظن ان هذه مشكلة كبيرة
على سبيل المثال يتبادر الى ذهنى حل بسيط ربما ليس افضل حل لكنه بسيط
نفس المثال "بسم الله الرحمن الرحيم"
فى البداية, ابحث عن بسم و سجل انها تقع على ازاحة 0 و طول بسم 3
الان ابحث عن الرحيم وسجل انها تقع على ازاحة 15
الان النص يوجد عند الازاحة 0+3 = 3
و طوله 15 - 3 = 12
هذه طريقة
لكن نصيحة, اذا اردت ان تتعامل مع regular expressions بصورة كثيرة
انصحك بالزهاب اما الى perl او python
هل يمكن توضيح فكرتك بكتابة كود مبسط لها
ok let us assume that you have already developed a function that can find a substring in a string
let us call this functtion int find(char* substring , char* string)
for example if we used the function find using
find("am" , "I am Mohammed") in this case the function will return 2 because the substring 2 lies at offset 2
now lets us develop the other function get_enclosed_stirng
the signature of this function has to be char* get_enclosed_string(char* start , char* end , char* string)
the function takes the header of the srtring and the footer and the string to perform the search on
and return the string that was found betweer the header and the footer
throug the definition of this function i will use the previously defined one "find" so i assume that it exists
char* get_enclosed_string(char* start , char* end , char* string)
I did not test this code for both syntactical errors and logical errors
but i expect it to work by very few modifications
sorry for writing in english, this box does not support arabic :)
تسجيل حضور فقط وساعود لاحقا مع الشكر سلفا وشكر مؤخر :)
هذا الموضوع مغلق.