البرمجة

تحويل أحرف مصفوفة إلى أرقام

لديك خلط بين تمثيل الأحرف الفردية والأرقام في مصفوفة الأحرف. عندما تعرف قيمة “45” في مصفوفة الأحرف، فإن كل حرف في السلسلة ‘4’ و ‘5’ يتم تمثيله بمفرده، وليس كعدد واحد. لذلك، عند طرح ‘0’ من ‘5’، ستحصل على القيمة 5 كما هو متوقع.

لحل هذه المشكلة وتحويل السلسلة “45” إلى القيمة 45، يمكنك استخدام دالة مثل atoi في C. هذه الدالة تقوم بتحويل سلسلة من الأحرف إلى عدد صحيح. هناك أيضًا طرق أخرى للقيام بذلك، مثل استخدام دوال المكتبات المعتمدة على sscanf لتحويل السلسلة إلى عدد صحيح.

يمكن تحسين الكود لديك كالتالي:

c
#include #include int main() { int val; char str[] = "45"; // تغيير من {} إلى "" val = atoi(str); // استخدام دالة atoi لتحويل السلسلة إلى عدد صحيح printf("Int value = %d\n", val); return 0; }

باستخدام هذا التعديل، ستحصل على النتيجة المطلوبة، وهي 45.

المزيد من المعلومات

بالطبع! في البرنامج الأصلي الذي كتبته، كانت مصفوفة الأحرف str تحتوي على الأحرف ‘1’ و ‘4’ و ‘5’. عند قراءة str[1]، فإنك في الواقع تحصل على الحرف ‘4’، وليس القيمة 45 كما هو متوقع. لذا، عند طرح ‘0’ من ‘4’، ستحصل على القيمة 4.

إذا أردت تخزين القيمة 45 كعدد صحيح، يجب عليك استخدام سلسلة تحتوي على الحروف ‘4’ و ‘5’ فقط، دون وجود حرف الواحد ‘1’ بينهما. يمكنك تعديل مصفوفة الأحرف str لتحقيق ذلك:

c
#include int main() { int val; char str[] = "45"; // تغيير المصفوفة لتحتوي على الحروف '4' و '5' فقط val = atoi(str); // استخدام دالة atoi لتحويل السلسلة إلى عدد صحيح printf("Int value = %d\n", val); return 0; }

باستخدام هذا التعديل، ستحصل على النتيجة المطلوبة، وهي 45.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!