عند محاولة ربط سلسلة حرفية مع حرفية حرفية في لغة C، يمكن أن يحدث سلوك غير متوقع. على سبيل المثال:
string str = "ab" 'c';
cout ينتج هذا الرمز مخرجات غير متوقعة لأنه لم يتم تعريف عامل التشغيل " " للجمع بين سلسلة حرفية وحرف حرفية. بدلاً من ذلك، يعامل المترجم السلسلة الحرفية على أنها سلسلة نمط C (مؤشر const char)، ويضيف قيمة int التي تمت ترقيتها للحرف الحرفي إلى عنوان السلسلة الحرفية. يؤدي هذا إلى سلوك غير محدد.
لتجنب هذه المشكلة، قم بتحويل الحرف الحرفي بشكل صريح إلى سلسلة قبل التسلسل:
std::string str = std::string("ab") 'c';
بدلاً من ذلك، استخدم التسلسل لتحقيق النتيجة المرجوة:
std::string str = "ab";
str = 'c';
في مقتطف الكود الثاني، يحتوي كائن السلسلة على عامل تشغيل " " محمّل بشكل زائد يقوم بتنفيذ التسلسل المقصود.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3