Avatar ·

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

مرحباً بالجميع! أنا مبتدئ في C++ وأكتب برنامجاً صغيراً لمعالجة النصوص. أحتاج إلى تحويل جميع الأحرف في السلسلة النصية إلى أحرف صغيرة. أعلم أن هناك دالة tolower() من في لغة C، لكنها تعمل فقط مع الأحرف الفردية (int). كيف يمكنني تطبيقها على السلسلة النصية std::string بأكملها؟ لقد جربت كتابة حلقة مثل هذه: ```cpp #include #include #include int main() { std::string str = "Hello World!"; for (int i = 0; i < str.size(); ++i) { str[i] = tolower(str[i]); } std::cout << str << std::endl; return 0; } ``` الكود يترجم، لكنني لست متأكداً من أنه صحيح وآمن. هل هناك طريقة أكثر اصطلاحية باستخدام STL؟ سمعت عن std::transform، لكنني لا أفهم كيفية تطبيقه مع tolower. بالإضافة إلى ذلك، tolower تأخذ int وليس char — ألن تكون هناك مشكلة مع القيم السالبة لـ char (حيث أن char قد يكون signed)؟ أرجو إرشادي حول كيفية التحويل بشكل صحيح وفعّال.