C++ میں Stol() فنکشن

C My Stol Fnkshn



C++ سب سے مشہور اور پرانی پروگرامنگ زبانوں میں سے ایک ہے جو اعلیٰ کارکردگی کی ایپلی کیشنز کی ترقی کے لیے استعمال ہوتی ہے۔ یہ انتہائی ماہر پروگرامرز اور نوسکھئیے ڈویلپرز کے درمیان استعمال ہوتا ہے۔ یہ بنیادی طور پر گیم ڈویلپمنٹ میں استعمال ہوتا ہے اور آپریٹنگ سسٹم تیار کرنے کے لیے ایک مثالی آپشن ہے۔ C++ زبان میں کوڈ لکھتے وقت، آپ کو ڈیٹا کو ایک قسم سے دوسری قسم میں تبدیل کرنے کا سامنا ہو سکتا ہے۔ اس مضمون میں، آپ سٹرنگ کو لمبے عدد میں تبدیل کرنا سیکھیں گے۔ سٹرنگ کو کسی دوسرے فارمیٹ میں تبدیل کرنا کافی مشکل ہے۔ تاہم، C++ پروگرامنگ زبان تاروں کو عدد میں تبدیل کرنے کا ایک تیز اور موثر طریقہ فراہم کرتی ہے۔

C++ میں stol فنکشن

سٹول ایک C++ بلٹ ان فنکشن ہے جو std لائبریری میں فراہم کیا گیا ہے۔ یہ تاروں کو لمبے عدد عدد میں تبدیل کرتا ہے۔ یہ سٹرنگ کے مواد کو مخصوص بیس کے عدد عدد میں تبدیل کرتا ہے اور ایک طویل عددی قدر لوٹاتا ہے۔ یہ تین پیرامیٹرز لیتا ہے، ایک ان پٹ سٹرنگ ہے، دوسرا آبجیکٹ پیرامیٹر ہے، اور تیسرا عددی بنیاد ہے۔ اسٹول فنکشن کا نحو ذیل میں دیا گیا ہے، ایک نظر ڈالیں:









فنکشن اسٹول تین پیرامیٹرز لیتا ہے: input_string، سائز، اور بیس۔ 'input_string' ان پٹ سٹرنگ کی نمائندگی کرتا ہے جسے ایک طویل عدد عدد میں تبدیل کرنے کی ضرورت ہے۔



'سائز' پیرامیٹر سائز_ٹی قسم کے آبجیکٹ کی نمائندگی کرتا ہے جو عددی قدر کے بعد ان پٹ سٹرنگ میں اگلی کریکٹر پوزیشن رکھتا ہے۔ اگر اسے استعمال کرنے کی ضرورت نہیں ہے تو یہ ایک کالعدم پوائنٹر ہوسکتا ہے۔





تیسرا پیرامیٹر، 'بیس' پیرامیٹر اس بنیاد کی نمائندگی کرتا ہے جس میں سٹرنگ کو تشریح کرنے کی ضرورت ہے۔ مثال کے طور پر، اگر '2' کی بنیاد دی گئی ہے، تو اسٹرنگ کی تشریح انٹیجر بیس 2 نمبر سے کی جائے گی۔ بیس پیرامیٹر کی ڈیفالٹ ویلیو 10 ہے اور اگر 0 فراہم کی جاتی ہے تو بیس ویلیو ترتیب میں فارمیٹ سے طے کی جائے گی۔ سٹول فنکشن دیئے گئے سٹرنگ کی int ویلیو کی نمائندگی کرنے والا طویل عدد عدد لوٹاتا ہے۔

اب، آئیے کچھ مثالوں کو یہ سمجھنے کے لیے دیکھیں کہ C++ میں سٹول فنکشن کیسے کام کرتا ہے۔



مثال نمبر 1

اس مثال میں، ہم اعشاریہ اور ہیکساڈیسیمل سٹرنگز فراہم کریں گے تاکہ یہ چیک کیا جا سکے کہ سٹول فنکشن انہیں اعشاریہ اور ہیکسا ڈیسیمل انٹیجر نمبرز میں کیسے تبدیل کرتا ہے۔

'dec = 123456789' ایک اعشاریہ تار ہے اور stol فنکشن stol(dec,&size) کا استعمال کرتے ہوئے ایک طویل عدد میں تبدیل ہوتا ہے۔ نوٹ کریں کہ بیس کو ان پٹ پیرامیٹر کے طور پر فنکشن میں فراہم نہیں کیا گیا ہے جس کے نتیجے میں سٹرنگ کو ڈیسیمل نمبر میں تبدیل کرنے کے لیے ڈیفالٹ بیس 10 کا استعمال ہوتا ہے۔ تاہم، سٹرنگ کو ہیکساڈیسیمل نمبر سے ڈیسیمل نمبر میں تبدیل کرنے کے لیے، بیس 16 بطور ان پٹ پیرامیٹر stol(hex, nullptr, 16) فراہم کیا جاتا ہے۔ جیسا کہ ہم جانتے ہیں، 16 بیس ہیکسا ڈیسیمل نمبر کی نمائندگی کرتا ہے۔

# شامل کریں

#include

# شامل کریں

int مرکزی ( )

{

std :: تار دسمبر = '123456789' ;
std :: تار ہیکس = 'a2bf3c' ;
std :: تار :: سائز_قسم سائز ;
طویل lidec = std :: ٹیبل ( دسمبر، اور سائز ) ;
طویل lihex = std :: ٹیبل ( ہیکس nullptr , 16 ) ;
std :: cout << 'ان پٹ ڈیسیمل سٹرنگ' << دسمبر << 'لمبے int میں تبدیل' << lidec << ' \n ' ;
std :: cout << 'ان پٹ ہیکساڈیسیمل سٹرنگ' << ہیکس << 'لمبے int میں تبدیل' << lihex << ' \n ' ;
واپسی 0 ;


}

یہاں درج ذیل آؤٹ پٹ ہے۔ نوٹ کریں کہ اعشاریہ کی تار '123456789' '123456789' اعشاریہ طویل عدد میں تبدیل ہوگئی۔ جب کہ ہیکساڈیسیمل سٹرنگ 'a2bf3c' '10665788' ہیکساڈیسیمل نمبر میں تبدیل ہو گئی۔ یہاں وہ ضروری اقدامات ہیں جن کی پیروی آپ یہ جاننے کے لیے کر سکتے ہیں کہ سٹول فنکشن کے ذریعے تبدیلی کیسے کی جاتی ہے:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( دو × 16 ) + ( گیارہ × 16 ³ ) + ( پندرہ × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

مثال نمبر 2

اس مثال میں، ہم stol فنکشن کا استعمال کرتے ہوئے بائنری نمبر کو تبدیل کریں گے۔ آئیے ذیل میں کوڈ دیکھیں اور کوڈ کے کام کو سمجھتے ہیں۔ '1010110110' ان پٹ سٹرنگ کے طور پر دیا گیا ہے اور بیس 2 کو ان پٹ بیس پیرامیٹر stol(bin,&size, 2) کے طور پر فراہم کیا گیا ہے، جو بائنری فارمیٹ میں نمبر کی نمائندگی کرتا ہے۔ سٹول فنکشن ان مراحل پر عمل کرتے ہوئے بائنری نمبر کو اعشاریہ نمبر میں تبدیل کر دے گا۔

( 1010110110 ) = ( 1 × دو ) + ( 0 × دو ) + ( 1 × دو ) + ( 0 × دو ) + ( 1 × دو ) + ( 1 × دو ) + ( 0 × دو ³ ) + ( 1 × دو ² ) + ( 1 × دو ¹ ) + ( 0 × دو ) = ( 694 ) ₁₀ # شامل کریں

#include

# شامل کریں

int مرکزی ( )

{

std :: تار بن = '1010110110' ;
std :: تار :: سائز_قسم سائز ;
طویل libin = std :: ٹیبل ( بن اور سائز دو ) ;
std :: cout << 'ان پٹ بائنری سٹرنگ' << بن << 'لمبے int میں تبدیل' << libin << ' \n ' ;
واپسی 0 ;


}

جیسا کہ آپ دیکھ سکتے ہیں کہ سٹول فنکشن نے وہی نتیجہ دیا جیسا کہ عام بائنری سے ڈیسیمل کنورژن کے عمل نے کیا تھا۔

مثال نمبر 3

اس مثال میں، ہم یہ دیکھنے جا رہے ہیں کہ اگر ہم سٹول فنکشن کو غلط ان پٹ کے ساتھ جانچتے ہیں تو کیا ہوتا ہے۔ سٹول فنکشن کو متعدد حروف کی ایک سٹرنگ فراہم کی جائے گی اور 0 کو بنیادی قدر کے طور پر فراہم کیا جائے گا تاکہ فنکشن خود بخود سٹرنگ کی بنیاد کا تعین کر لے۔ یہاں کوڈ ہے:

حروف کا ایک سیٹ ایک ان پٹ سٹرنگ کے طور پر فراہم کیا جاتا ہے جس کا تعین کسی بنیادی قدر سے نہیں ہوتا، یعنی 10، 16، 2، وغیرہ اس لیے فنکشن غلطی کی قدر لوٹائے گا۔

# شامل کریں

#include

# شامل کریں

int مرکزی ( )

{

std :: تار chr = 'abcdefgh' ;

std :: تار :: سائز_قسم سائز ;
طویل str = std :: ٹیبل ( chr، nullptr , 0 ) ;
std :: cout << 'ان پٹ کریکٹر سٹرنگ' << chr << 'لمبے int میں تبدیل' << str << ' \n ' ;
واپسی 0 ;


}

ذیل میں آؤٹ پٹ دیکھیں۔ نوٹ کریں کہ کمپائلر نے ایک 'invalid_argument' استثناء اٹھایا ہے کیونکہ فنکشن ان تاروں کو پورا نہیں کرتا ہے جن کا تعین کسی بنیادی قدر سے نہیں کیا جا سکتا۔

مثال نمبر 4

اس مثال میں، ہم stol() فنکشن کا نتیجہ دیکھنے کے لیے درست اور غلط ان پٹ کا مجموعہ فراہم کریں گے۔

ان پٹ سٹرنگ درست اور غلط حروف کا مجموعہ ہے، '123xf25'۔ '0' isg ایک ان پٹ بیس کے طور پر فراہم کیا گیا ہے تاکہ فنکشن حروف کی قسم کی بنیاد پر خود بخود ان پٹ سٹرنگ کی بنیاد کا تعین کرے۔

# شامل کریں

#include

# شامل کریں

int مرکزی ( )

{

std :: تار chr = '123xf25' ;
std :: تار :: سائز_قسم سائز ;
طویل str = std :: ٹیبل ( chr، nullptr , 0 ) ;
std :: cout << 'ان پٹ سٹرنگ' << chr << 'لمبے int میں تبدیل' << str << ' \n ' ;
واپسی 0 ;


}

یہاں وہ آؤٹ پٹ ہے جو درست اور غلط ان پٹ کے امتزاج کے ساتھ سٹول فنکشن کے کام کو ظاہر کرتا ہے:

نوٹ کریں کہ فنکشن نے '123' کو اعشاریہ نمبر '123' میں تبدیل کر دیا اور بقیہ سٹرنگ کو مسترد کر دیا کیونکہ اسے ایک غلط ان پٹ 'x' موصول ہوا تھا۔ کریکٹر 'x' کے بعد کی سٹرنگ سٹول فنکشن کے ذریعے تبدیل نہیں ہوتی، سٹرنگ کے صرف پہلے حروف کو لمبے int کے طور پر لوٹاتا ہے۔

نتیجہ

اس پوسٹ میں، ہم نے C++ پروگرامنگ زبان کے اسٹول فنکشن کو دریافت کیا۔ کچھ مفید اور آسان مثالوں کی مدد سے، ہم نے سیکھا کہ اسٹول فنکشن مختلف قسم کے ان پٹ کے ساتھ کیسے کام کرتا ہے۔ سٹول فنکشن تین پیرامیٹرز لیتا ہے، ان پٹ سٹرنگ جسے تبدیل کیا جانا ہے، ایک سائز پیرامیٹر جو سٹرنگ میں فنکشن کی پوزیشن کو ظاہر کرتا ہے، اور بیس ویلیو جو ان پٹ سٹرنگ کی بنیاد کی نمائندگی کرتی ہے۔ یہ ان پٹ سٹرنگ کی لمبی int ویلیو لوٹاتا ہے۔