Avatar ·

كيفية تحويل std::string إلى char* في C++؟ مشاكل مع c_str() و data()

مرحباً بالجميع! لقد بدأت للتو في تعلم C++ وواجهت مشكلة. أحتاج إلى تمرير محتوى std::string إلى دالة تقبل فقط char* (وليس const char*). أعلم أن std::string لديها دوال c_str() و data()، لكنها تُرجع const char*، والمترجم يشتكي من أنني لا أستطيع تمرير const إلى معامل غير const. جربت القيام بذلك:\n\n```cpp\nstd::string myStr = "Hello, world!";\nchar* ptr = myStr.c_str(); // خطأ: لا يمكن تحويل const char* إلى char*\nsomeFunction(ptr);\n```\n\nثم قرأت أنه يمكن استخدام const_cast، لكن هذا يبدو خطيراً. ورأيت أيضاً أن أحدهم ينسخ السلسلة إلى مصفوفة char عبر strcpy. أي من هذه الطرق صحيح؟ أم هل هناك طريقة قياسية للحصول على char* (غير const) من std::string؟ شكراً مسبقاً على المساعدة!