Avatar ·

كيفية إزالة المسافات بشكل صحيح من بداية ونهاية std::string في C++؟

مرحباً بالجميع! أنا مطور C++ مبتدئ، وواجهت مهمة تبدو بسيطة: أحتاج إلى قص المسافات (وأي أحرف مسافات بيضاء) من بداية ونهاية السلسلة النصية. أعمل مع std::string. حاولت كتابة دالة trim خاصة بي باستخدام حلقات والتحقق من الأحرف عبر std::isspace، لكن الكود أصبح ضخماً وغير فعال كما أعتقد. هذا ما توصلت إليه حتى الآن: ```cpp #include #include #include std::string trim(std::string str) { // إزالة المسافات من البداية while (!str.empty() && std::isspace(str[0])) { str.erase(0, 1); } // إزالة المسافات من النهاية while (!str.empty() && std::isspace(str[str.length() - 1])) { str.erase(str.length() - 1, 1); } return str; } ``` هذا الكود يعمل، لكن يبدو لي أن الاستدعاء المستمر لـ erase() لإزالة حرف واحد في كل مرة بطيء جداً، خاصة مع السلاسل الطويلة. كما أنني لست متأكداً من أن الكود يعالج الحالات بشكل صحيح.