Mohssen A Mohssen نشر 29 نوفمبر 2021 أرسل تقرير نشر 29 نوفمبر 2021 كيف يمكنني التحقق من وجود كلمة في جملة معينة بإستخدام لغة ++C، فعلى سبيل المثال لدي المتغيرين التاليين: std::string s1 = "Hello, world"; std::string s2 = "world"; كيف يمكنني التحقق برمجيًا من أن المتغير s1 يحتوي على قيمة المتغير s2؟ في لغات أخرى مثل Python يمكنني إستعمال المعامل in للتحقق من هذا الأمر، كيف أقوم بنفس الشيء في لغة ++C؟ 3 اقتباس
1 سامح أشرف نشر 29 نوفمبر 2021 أرسل تقرير نشر 29 نوفمبر 2021 يحتوي النوع string على التابع find والتي يقوم بإرجاع فهرس النص الذي تبحث عنه: #include <iostream> #include <string> int main() { std::string s1 = "Hello, world"; std::string s2 = "world"; // التحقق من وجود قيمة المتغير s2 داخل قيمة المتغير s1 if (s1.find(s2) != std::string::npos) { std::cout << "found '" << s2 << "' in '" << s1 << "'" << '\n'; } return 0; } في حالة وجود النص s2 داخل قيمة المتغير s1 سوف يتم طباعة الجملة found 'world' in 'Hello, world' 2 اقتباس
0 شرف الدين حفني نشر 29 نوفمبر 2021 أرسل تقرير نشر 29 نوفمبر 2021 يمكنك التأكد من ذلك عبر إستخدام الregex عن طريق الدالة regex_replace التي تقوم بأخذ مُعاملات كالتالي النص المُراد تطبيق النمط عليه النمط النص الذي سيتم إستبداله بدلًا من النمط وتقوم بإرجاع النص الجديد, فيمكنك تنفيذ الدالة على النص الموجود لديك وتعطي في النص المُستبدِل قيمة فارغة أي يتم حذفه, ومن ثم مقارنة طول النص الجديد بالنص القديم, إن تغير الطول هذا يعني أنهم لم يُصبحو نفس النص, أي أن الكلمة موجودة , ويمكن تطبيق ذلك عبر الشفرة البرمجية التالية string a = "hello world"; string b = "hello"; regex re(b); string c = regex_replace(a,re,""); if(c.length()<a.length()) cout<<"true"; else cout<<"false" 1 اقتباس
0 Wael Aljamal نشر 5 ديسمبر 2021 أرسل تقرير نشر 5 ديسمبر 2021 في الإصدارات الحديثة من ++C يمكنك استخدام الدالة: std::string::contains #include <string> string str1 = std::string("Hello wael"); string str2 = std::string("wael"); if (str1.contains(str2)) { // found! , موجودة } ويمكن استخدام std::regex_search std::string str1 = "Hello wael"; std::string str2 "wael"; // تجاهل حالة الأحرف icase auto rx = std::regex{ str2,std::regex_constants::icase }; // البحث bool isStrExists = std::regex_search(testString, rx); rx هو تعبير منتظم، يحوي السلسلة كوسيط أول، ثم عامل التحقق مع تجاهل حالة الأحرف، ثم استدعاء الدالة std::regex_search التي تعيد قيمة منطقية true في حال إيجاد السلسلة الجزئية. 1 اقتباس
السؤال
Mohssen A Mohssen
كيف يمكنني التحقق من وجود كلمة في جملة معينة بإستخدام لغة ++C، فعلى سبيل المثال لدي المتغيرين التاليين:
كيف يمكنني التحقق برمجيًا من أن المتغير s1 يحتوي على قيمة المتغير s2؟
في لغات أخرى مثل Python يمكنني إستعمال المعامل in للتحقق من هذا الأمر، كيف أقوم بنفس الشيء في لغة ++C؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.