كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية في C++؟
مرحبًا بالجميع! لقد بدأت للتو في تعلم C++ وواجهت مشكلة: كيف أتحقق مما إذا كانت سلسلة تحتوي على سلسلة أخرى؟ في لغات أخرى، مثل Python، يتم ذلك ببساطة عبر عامل `in` أو طريقة `.find()`. أما في C++ فأنا مرتبك بعض الشيء.
لدي متغير `std::string text = "Hello, world!";` وأحتاج للتحقق مما إذا كان يحتوي على السلسلة الفرعية `"world"`. جربت كتابة هذا الكود:
```cpp
#include
#include
int main() {
std::string text = "Hello, world!";
std::string substr = "world";
if (text.find(substr)) {
std::cout << "تم العثور!" << std::endl;
} else {
std::cout << "لم يتم العثور" << std::endl;
}
return 0;
}
```
لكن هذا الكود لا يعمل بشكل صحيح: عندما تكون السلسلة الفرعية موجودة، فإنه يطبع أحيانًا "لم يتم العثور"، وعندما لا تكون موجودة، قد يطبع "تم العثور". قرأت أن `find()` يُرجع بعض الفهرس، لكنني لم أفهم كيفية استخدامه بشكل صحيح.
من فضلكم، اشرحوا كيفية التحقق بشكل صحيح.