وظيفة Stol () في C ++

Wzyft Stol Fy C



C ++ هي واحدة من أشهر لغات البرمجة وأقدمها المستخدمة في تطوير التطبيقات عالية الأداء. يتم استخدامه بين المبرمجين والمطورين المبتدئين ذوي الخبرة العالية. يستخدم بشكل أساسي في تطوير الألعاب وهو خيار مثالي لتطوير أنظمة التشغيل. عند كتابة التعليمات البرمجية بلغة C ++ ، قد تصادف تحويل البيانات من نوع إلى آخر. في هذه المقالة ، ستتعلم كيفية تحويل سلسلة إلى عدد صحيح طويل. من الصعب للغاية تحويل سلسلة إلى أي تنسيق آخر. ومع ذلك ، توفر لغة البرمجة C ++ طريقة سريعة وفعالة لتحويل السلاسل إلى أعداد صحيحة.

وظيفة stol في C ++

Stol هي وظيفة مضمنة في C ++ متوفرة في مكتبة الأمراض المنقولة جنسياً. يحول السلاسل إلى أعداد صحيحة طويلة. يقوم بتحويل محتوى السلسلة إلى عدد صحيح للقاعدة المحددة وإرجاع قيمة عدد صحيح طويل. يأخذ ثلاث معلمات ، واحد هو سلسلة الإدخال ، والثاني هو معلمة الكائن ، والثالث هو القاعدة العددية. فيما يلي صياغة دالة stol ، ألق نظرة:









تأخذ الدالة stol ثلاث معاملات: input_string ، و size ، و base. تمثل 'input_string' سلسلة الإدخال التي يجب تحويلها إلى عدد صحيح طويل.



تمثل معلمة 'الحجم' كائن من النوع size_t والذي يحمل موضع الحرف التالي في سلسلة الإدخال بعد القيمة الرقمية. يمكن أن يكون مؤشرًا فارغًا إذا لم يكن مطلوبًا للاستخدام.





يمثل المعامل الثالث ، المعلمة 'base' ، الأساس الذي تحتاج فيه السلسلة إلى التفسير. على سبيل المثال ، إذا تم إعطاء الأساس '2' ، فسيتم تفسير السلسلة على أنها عدد صحيح أساس 2. القيمة الافتراضية للمعلمة الأساسية هي 10 وإذا تم توفير 0 ، فسيتم تحديد القيمة الأساسية بواسطة التنسيق في التسلسل. ترجع الدالة stol الرقم الصحيح الطويل الذي يمثل قيمة int لسلسلة معينة.

الآن ، دعونا نستكشف بعض الأمثلة لفهم كيفية عمل وظيفة stol في C ++.



مثال 1

في هذا المثال ، سنوفر سلاسل عشرية وسداسية عشرية للتحقق من كيفية تحويل وظيفة stol إلى أعداد صحيحة عشرية وسداسية عشرية.

“dec = 123456789” عبارة عن سلسلة عشرية ويتم تحويلها إلى عدد صحيح طويل باستخدام وظيفة stol stol (dec، & size). لاحظ أن القاعدة غير متوفرة في الوظيفة كمعامل إدخال والذي يستخدم نتيجة لذلك الأساس الافتراضي 10 لتحويل السلسلة إلى رقم عشري. ومع ذلك ، لتحويل السلسلة من رقم سداسي عشري إلى رقم عشري ، يتم توفير الأساس 16 كمعامل إدخال stol (hex ، nullptr ، 16). كما نعلم ، تمثل القاعدة 16 عددًا سداسيًا عشريًا.

# تضمين

# تضمين <سلسلة>

# تضمين

int رئيسي ( )

{

الأمراض المنقولة جنسيا :: سلسلة ديسمبر = '123456789' ؛
الأمراض المنقولة جنسيا :: سلسلة عرافة = 'a2bf3c' ؛
الأمراض المنقولة جنسيا :: سلسلة :: نوع الحجم بحجم ؛
طويل ليديك = الأمراض المنقولة جنسيا :: الطاولة ( ديسمبر & بحجم ) ؛
طويل lihex = الأمراض المنقولة جنسيا :: الطاولة ( عرافة، nullptr و 16 ) ؛
الأمراض المنقولة جنسيا :: كوت << 'إدخال سلسلة عشرية' << ديسمبر << 'تم تحويله إلى كثافة العمليات' << ليديك << ' ' ؛
الأمراض المنقولة جنسيا :: كوت << 'إدخال سلسلة سداسية عشرية' << عرافة << 'تم تحويله إلى كثافة العمليات' << lihex << ' ' ؛
إرجاع 0 ؛


}

هنا هو الإخراج التالي. لاحظ أن السلسلة العشرية '123456789' تم تحويلها إلى عدد صحيح طويل عشري '123456789'. بينما تم تحويل السلسلة السداسية العشرية 'a2bf3c' إلى رقم سداسي عشري '10665788'. فيما يلي الخطوات المطلوبة التي يمكنك اتباعها لمعرفة كيفية إجراء التحويل بواسطة وظيفة stol:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( اثنين × 16 ) + ( أحد عشر × 16 ³ ) + ( خمسة عشر × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

المثال رقم 2

في هذا المثال ، سنقوم بتحويل رقم ثنائي باستخدام وظيفة stol. دعونا نرى الكود أدناه ونفهم عمل الكود. يتم إعطاء '1010110110' كسلسلة إدخال ويتم توفير القاعدة 2 كمعامل إدخال أساسي stol (bin ، & size ، 2) ، يمثل الرقم في تنسيق ثنائي. ستعمل وظيفة stol على تحويل الرقم الثنائي إلى رقم عشري باتباع الخطوات التالية:

( 1010110110 ) = ( 1 × اثنين ) + ( 0 × اثنين ) + ( 1 × اثنين ) + ( 0 × اثنين ) + ( 1 × اثنين ) + ( 1 × اثنين ) + ( 0 × اثنين ³ ) + ( 1 × اثنين ² ) + ( 1 × اثنين ¹ ) + ( 0 × اثنين ) = ( 694 ) ₁₀ # تضمين

# تضمين <سلسلة>

# تضمين

int رئيسي ( )

{

الأمراض المنقولة جنسيا :: سلسلة سلة مهملات = '1010110110' ؛
الأمراض المنقولة جنسيا :: سلسلة :: نوع الحجم بحجم ؛
طويل ليبين = الأمراض المنقولة جنسيا :: الطاولة ( سلة مهملات، & بحجم، اثنين ) ؛
الأمراض المنقولة جنسيا :: كوت << 'إدخال سلسلة ثنائية' << سلة مهملات << 'تم تحويله إلى كثافة العمليات' << ليبين << ' ' ؛
إرجاع 0 ؛


}

كما يمكنك أن ترى أن وظيفة stol أعادت نفس النتيجة كما فعل الثنائي العام إلى عملية التحويل العشري.

المثال رقم 3

في هذا المثال ، سنرى ما سيحدث إذا اختبرنا وظيفة stol بإدخال غير صالح. سيتم توفير سلسلة من الأحرف المتعددة لوظيفة stol وسيتم توفير 0 كقيمة أساسية بحيث تحدد الوظيفة أساس السلسلة تلقائيًا. ها هو الكود:

يتم توفير مجموعة من الأحرف كسلسلة إدخال لا يتم تحديدها بواسطة أي قيم أساسية ، على سبيل المثال ، 10 ، 16 ، 2 ، وما إلى ذلك ، لذا ستُرجع الدالة قيمة خطأ.

# تضمين

# تضمين <سلسلة>

# تضمين

int رئيسي ( )

{

الأمراض المنقولة جنسيا :: سلسلة chr = 'abcdefgh' ؛

الأمراض المنقولة جنسيا :: سلسلة :: نوع الحجم بحجم ؛
طويل شارع = الأمراض المنقولة جنسيا :: الطاولة ( مركز حقوق الإنسان ، nullptr و 0 ) ؛
الأمراض المنقولة جنسيا :: كوت << 'سلسلة أحرف الإدخال' << chr << 'تم تحويله إلى كثافة العمليات' << شارع << ' ' ؛
إرجاع 0 ؛


}

انظر الإخراج أدناه. لاحظ أن المترجم قام بإثارة استثناء 'غير صالح' نظرًا لأن الوظيفة لا تلبي السلاسل التي لا يمكن تحديدها بأي قيمة أساسية.

المثال رقم 4

في هذا المثال ، سنقدم مجموعة من المدخلات الصالحة وغير الصالحة لمعرفة نتيجة وظيفة stol ().

سلسلة الإدخال عبارة عن مجموعة من الأحرف الصالحة وغير الصالحة ، '123xf25'. يتم توفير '0' كقاعدة إدخال بحيث تحدد الوظيفة أساس سلسلة الإدخال تلقائيًا بناءً على نوع الأحرف.

# تضمين

# تضمين <سلسلة>

# تضمين

int رئيسي ( )

{

الأمراض المنقولة جنسيا :: سلسلة chr = '123xf25' ؛
الأمراض المنقولة جنسيا :: سلسلة :: نوع الحجم بحجم ؛
طويل شارع = الأمراض المنقولة جنسيا :: الطاولة ( مركز حقوق الإنسان ، nullptr و 0 ) ؛
الأمراض المنقولة جنسيا :: كوت << 'سلسلة الإدخال ' << chr << 'تم تحويله إلى كثافة العمليات' << شارع << ' ' ؛
إرجاع 0 ؛


}

هذا هو الإخراج الذي يوضح عمل وظيفة stol مع مجموعة من المدخلات الصالحة وغير الصالحة:

لاحظ أن الدالة حولت '123' إلى رقم عشري '123' وتجاهلت بقية السلسلة لأنها تلقت إدخالًا غير صالح 'x'. السلسلة التي تلي الحرف 'x' لا يتم تحويلها بواسطة وظيفة stol ، حيث يتم إرجاع الأحرف الأولى فقط من السلسلة على أنها طويلة int.

استنتاج

في هذا المنشور ، استكشفنا وظيفة stol للغة البرمجة C ++. بمساعدة بعض الأمثلة المفيدة والبسيطة ، تعلمنا كيف تعمل وظيفة stol مع أنواع مختلفة من المدخلات. تأخذ وظيفة stol ثلاث معاملات ، سلسلة الإدخال التي سيتم تحويلها ، معلمة الحجم التي تمثل موضع الوظيفة في السلسلة ، والقيمة الأساسية التي تمثل أساس سلسلة الإدخال. تقوم بإرجاع قيمة int الطويلة لسلسلة الإدخال.