يحدث خطأ التحويل غير صالح من كونست شار إلى شار عند محاولة تحويل سلسلة ثابتة إلى حرف. يمكن أن يحدث ، على سبيل المثال ، عند محاولة تمرير قيمة من نوع كونست شار* إلى وظيفة في انتظار وسيطة من نوع شار. يمكن أن يؤدي هذا الخطأ إلى نتائج غير متوقعة وتشغيل غير صحيح للبرنامج.
حدوث التحويل غير صالح من كونست شار إلى خطأ شار عادة ما يرجع ذلك إلى حقيقة أن سلاسل ثابتة في ج have لديها نوع كونست شار* ، وهذا هو ، مؤشر إلى حرف. في الوقت نفسه ، تتطلب الوظائف والمشغلات التي تتوقع قيمة حرف حرفا مباشرة ، وليس مؤشرا لحرف.
على سبيل المثال ، قد يحدث خطأ في التعليمات البرمجية التالية:
كونست شار * شارع = "مرحبا";شار ج = شارع;
في هذه الحالة ، المتغير شارع لديه نوع كونست شار* ، والمتغير ج يجب أن يكون نوع شار. يحدث خطأ تحويل غير صالح من كونست شار إلى شار نتيجة لمحاولة تحويل الأنواع.
لتصحيح الخطأ ، من الضروري تغيير نوع المتغير الذي يتم تنفيذ المهمة إليه. في هذه الحالة ، يمكنك استخدام كونست شار * نوع لمتغير ج:
أيضا ، إذا كنت بحاجة إلى الحصول على حرف من سلسلة ، يمكنك استخدام عامل الفهرسة [] للوصول إلى الأحرف الفردية للسلسلة:
كونست شار * شارع = "مرحبا";شار ج = شارع [0];
في هذا المثال ، المتغير ج سيتم تعيين الحرف ' ح ' ، وهو الحرف الأول من سلسلة شارع.
إصلاح التحويل غير صالح من كونست شار إلى خطأ شار يتطلب اهتماما دقيقا لأنواع البيانات وتحويلها. سيساعد تحويل النوع الصحيح على تجنب الأخطاء وضمان التشغيل الصحيح للبرنامج.
تحويل غير صالح من كونست شار إلى خطأ شار
يحدث الخطأ" تحويل غير صالح من كونست شار إلى شار " عند محاولة تحويل مؤشر إلى سلسلة ثابتة (كونست شار*) إلى مؤشر إلى سلسلة عادية (شار*). في ج++ ، السلاسل الثابتة من النوع كونست شار* ، مما يعني أنه لا يمكن تغييرها. في المقابل ، تحتوي السلاسل العادية على نوع الحرف* ، والذي يسمح لك بتغيير محتويات السلسلة.
يمكن أن يحدث مثل هذا الخطأ ، على سبيل المثال ، عند تمرير معلمة إلى دالة تتوقع مؤشرا إلى سلسلة عادية ، ولكنها تتلقى مؤشرا إلى سلسلة ثابتة. في مثل هذه الحالات ، يصدر المترجم رسالة خطأ "تحويل غير صالح من كونست شار إلى شار" ، مشيرا إلى المكان الذي تجري فيه محاولة التحويل.
يمكن استخدام تحويل النوع الصريح لتصحيح الخطأ. على سبيل المثال ، يمكنك إنشاء متغير مؤقت من نوع شار * ويلقي مؤشر إلى سلسلة ثابتة لهذا النوع:
كونست شار * كونستستر = "مرحبا";
شار * شارع = كونست_كاست (كونستستر);
ومع ذلك ، يجب أن تكون حذرا عند استخدام صب النوع الصريح ، حيث يمكن أن يؤدي ذلك إلى سلوك برنامج غير محدد إذا تغيرت السلسلة الثابتة بالفعل. كحل بديل ، يمكنك تغيير نوع المعلمة وظيفة إلى كونست شار * إذا الاتساق ضروري.
أسباب الخطأتحويل غير صالح من كونست شار إلى أخطاء شار غالبا ما تحدث عند محاولة تحويل سلاسل ثابتة إلى أحرف شار غير معدلة. في ال ج programming لغة البرمجة ، عادة ما يتم تمثيل السلاسل الثابتة بـ كونست شار* اكتب ، بينما أحرف شار من نوع شار. لذلك ، قد يؤدي تحويل كونست شار* إلى شار إلى خطأ في نوع البيانات.
قد يكون أحد أسباب الخطأ محاولة لتمرير سلسلة كونست شار* إلى وظيفة أو طريقة تتوقع وسيطة من نوع شار. على سبيل المثال:// خطأ: تحويل غير صحيح من كونست شار * إلى شار
فواد برينتشار (شار ج) {الأمراض المنقولة جنسيا:: كوت < < ج < < الأمراض المنقولة جنسيا:: إندل;