كيفية قص المسافات في بداية ونهاية std::string في C++؟
مرحبًا بالجميع! أنا مطور C++ مبتدئ، أكتب برنامجًا بسيطًا لمعالجة إدخال المستخدم. أحتاج إلى إزالة المسافات الزائدة (بما في ذلك علامات التبويب وأسطر جديدة) في بداية ونهاية السلسلة. على سبيل المثال، يجب أن تتحول السلسلة " Hello, World! " إلى "Hello, World!".
أعلم أنه في C++ يوجد std::string، لكنني لا أجد طريقة مدمجة للقص (trim). حاولت كتابة دالتي الخاصة باستخدام الحلقات، لكن الكود يصبح ضخمًا وغير مريح.
إليك ما حاولت فعله:
```cpp
std::string trim(std::string str) {
// إزالة المسافات في البداية
while (str[0] == ' ') {
str.erase(0, 1);
}
// إزالة المسافات في النهاية
while (str[str.size() - 1] == ' ') {
str.pop_back();
}
return str;
}
```
لكن هذا يعمل فقط مع المسافات العادية، وليس مع علامات التبويب، ويبدو غير فعال. هل هناك طريقة قياسية للقيام بذلك في C++؟ ربما توجد دالة في STL أو Boost؟ أرشدوني إلى كيفية قص السلسلة بشكل صحيح لمراعاة