Avatar ·

كيفية تحويل سلسلة std::string إلى أحرف صغيرة في C++؟

مرحبًا أيها الزملاء! أنا جديد في C++ (كنت أكتب بلغة Python سابقًا) وقد واجهت مهمة تبدو بسيطة: أحتاج إلى تحويل جميع الأحرف في كائن std::string إلى أحرف صغيرة. في Python، أكتب ببساطة "HELLO".lower() وينتهي الأمر. لكن في C++، أنا في حيرة. هذا هو الكود الخاص بي الذي لا يعمل: ```cpp #include #include int main() { std::string text = "HELLO WORLD!"; std::string lower_text = std::tolower(text); // خطأ! std::cout << lower_text << std::endl; return 0; } ``` المترجم يعطي خطأ: `cannot convert 'std::string' to 'int' for argument '1' to 'int tolower(int)'`. لقد فهمت أن `std::tolower` يعمل فقط مع الأحرف الفردية (من نوع `int`)، وليس مع السلسلة بأكملها. حاولت كتابة حلقة يدويًا: ```cpp for (size_t i = 0; i < text.length(); ++i) { text[i] = std::tolower(text[i]); } ``` هذا يعمل، لكنه يبدو لي معقدًا وقبيحًا. هل هناك طريقة قياسية في C++ لفعل ذلك بسطر واحد؟