C++ এ Stol() ফাংশন

C E Stol Phansana



C++ হল সবচেয়ে জনপ্রিয় এবং প্রাচীনতম প্রোগ্রামিং ল্যাঙ্গুয়েজগুলির মধ্যে একটি যা উচ্চ-ক্ষমতাসম্পন্ন অ্যাপ্লিকেশনের বিকাশের জন্য ব্যবহৃত হয়। এটি অত্যন্ত বিশেষজ্ঞ প্রোগ্রামার এবং নবজাতক বিকাশকারীদের মধ্যে ব্যবহৃত হয়। এটি মূলত গেম ডেভেলপমেন্টে ব্যবহৃত হয় এবং অপারেটিং সিস্টেম ডেভেলপ করার জন্য একটি আদর্শ বিকল্প। C++ ভাষায় কোড লেখার সময়, আপনি এক প্রকার থেকে অন্য প্রকারে ডেটা রূপান্তর করতে পারেন। এই নিবন্ধে, আপনি একটি স্ট্রিংকে একটি দীর্ঘ পূর্ণসংখ্যাতে রূপান্তর করতে শিখবেন। একটি স্ট্রিংকে অন্য কোনো বিন্যাসে রূপান্তর করা বেশ কঠিন। যাইহোক, C++ প্রোগ্রামিং ভাষা স্ট্রিংকে পূর্ণসংখ্যায় রূপান্তর করার একটি দ্রুত এবং কার্যকর উপায় প্রদান করে।

C++ এ stol ফাংশন

স্টল হল একটি C++ বিল্ট-ইন ফাংশন যা std লাইব্রেরিতে দেওয়া আছে। এটি স্ট্রিংকে দীর্ঘ পূর্ণসংখ্যাতে রূপান্তর করে। এটি স্ট্রিং বিষয়বস্তুকে নির্দিষ্ট বেসের একটি পূর্ণসংখ্যাতে রূপান্তর করে এবং একটি দীর্ঘ পূর্ণসংখ্যার মান প্রদান করে। এটিতে তিনটি প্যারামিটার লাগে, একটি হল ইনপুট স্ট্রিং, দ্বিতীয়টি অবজেক্ট প্যারামিটার এবং তৃতীয়টি হল সংখ্যাসূচক ভিত্তি৷ স্টল ফাংশনের সিনট্যাক্স নীচে দেওয়া হয়েছে, দেখুন:









ফাংশন stol তিনটি পরামিতি লাগে: input_string, আকার এবং বেস। 'ইনপুট_স্ট্রিং' ইনপুট স্ট্রিংকে উপস্থাপন করে যেটিকে একটি দীর্ঘ পূর্ণসংখ্যা সংখ্যায় রূপান্তর করতে হবে।



'সাইজ' প্যারামিটারটি সাইজ_টি টাইপের বস্তুর প্রতিনিধিত্ব করে যা সংখ্যাসূচক মানের পরে ইনপুট স্ট্রিং-এ পরবর্তী অক্ষর অবস্থান বহন করে। এটি ব্যবহার করার প্রয়োজন না হলে এটি একটি নাল পয়েন্টার হতে পারে।





তৃতীয় প্যারামিটার, 'বেস' প্যারামিটারটি সেই বেসকে প্রতিনিধিত্ব করে যেখানে স্ট্রিংকে ব্যাখ্যা করা দরকার। উদাহরণস্বরূপ, যদি '2' বেস দেওয়া হয়, তাহলে স্ট্রিংটিকে পূর্ণসংখ্যা বেস 2 সংখ্যা হিসাবে ব্যাখ্যা করা হবে। বেস প্যারামিটারের ডিফল্ট মান হল 10 এবং যদি 0 প্রদান করা হয় তাহলে বেস মানটি ক্রম অনুসারে বিন্যাস দ্বারা নির্ধারিত হবে। stol ফাংশন একটি প্রদত্ত স্ট্রিং এর 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' হেক্সাডেসিমেল সংখ্যায় রূপান্তরিত হয়েছে। এখানে প্রয়োজনীয় পদক্ষেপগুলি রয়েছে যা আপনি 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 ) ₁₀ # অন্তর্ভুক্ত করুন

#include

# অন্তর্ভুক্ত করুন

int প্রধান ( )

{

std :: স্ট্রিং বিন = '1010110110' ;
std :: স্ট্রিং :: আকারের ধরণ আকার ;
দীর্ঘ libin = std :: টেবিল ( বিন এবং আকার, দুই ) ;
std :: cout << 'ইনপুট বাইনারি স্ট্রিং' << বিন << 'লং int-এ রূপান্তরিত' << libin << ' \n ' ;
ফিরে 0 ;


}

আপনি দেখতে পাচ্ছেন যে stol ফাংশনটি সাধারণ বাইনারি থেকে দশমিক রূপান্তর প্রক্রিয়ার মতো একই ফলাফল দিয়েছে।

উদাহরণ # 3

এই উদাহরণে, আমরা দেখতে যাচ্ছি যদি আমরা অবৈধ ইনপুট দিয়ে স্টল ফাংশন পরীক্ষা করি তাহলে কি হবে। স্টল ফাংশনে একাধিক অক্ষরের একটি স্ট্রিং প্রদান করা হবে এবং 0 ভিত্তি মান হিসাবে প্রদান করা হবে যাতে ফাংশনটি স্বয়ংক্রিয়ভাবে স্ট্রিংয়ের ভিত্তি নির্ধারণ করবে। এখানে কোড আছে:

অক্ষরের একটি সেট একটি ইনপুট স্ট্রিং হিসাবে প্রদান করা হয় যা কোন ভিত্তি মান দ্বারা নির্ধারিত হয় না, যেমন, 10, 16, 2, ইত্যাদি তাই ফাংশনটি একটি ত্রুটি মান প্রদান করবে।

# অন্তর্ভুক্ত করুন

#include

# অন্তর্ভুক্ত করুন

int প্রধান ( )

{

std :: স্ট্রিং chr = 'abcdefgh' ;

std :: স্ট্রিং :: আকারের ধরণ আকার ;
দীর্ঘ str = std :: টেবিল ( chr, nullptr , 0 ) ;
std :: cout << 'ইনপুট অক্ষর স্ট্রিং' << chr << 'লং int-এ রূপান্তরিত' << str << ' \n ' ;
ফিরে 0 ;


}

নিচের আউটপুট দেখুন। মনে রাখবেন যে কম্পাইলার একটি 'অবৈধ_আর্গুমেন্ট' ব্যতিক্রম উত্থাপন করেছে যেহেতু ফাংশনটি স্ট্রিংগুলিকে পূরণ করে না যা কোনও ভিত্তি মান দিয়ে নির্ধারণ করা যায় না।

উদাহরণ # 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' অক্ষরের পরের স্ট্রিংটি stol ফাংশন দ্বারা রূপান্তরিত হয় না, শুধুমাত্র স্ট্রিংয়ের প্রথম অক্ষরগুলিকে দীর্ঘ int হিসাবে ফিরিয়ে দেয়।

উপসংহার

এই পোস্টে, আমরা C++ প্রোগ্রামিং ভাষার স্টল ফাংশন অন্বেষণ করেছি। কিছু দরকারী এবং সহজ উদাহরণের সাহায্যে, আমরা শিখেছি কিভাবে স্টল ফাংশন বিভিন্ন ধরনের ইনপুট দিয়ে কাজ করে। স্টল ফাংশনটি তিনটি পরামিতি নেয়, ইনপুট স্ট্রিং যা রূপান্তরিত হবে, একটি আকারের প্যারামিটার যা স্ট্রিং-এ ফাংশনের অবস্থানকে প্রতিনিধিত্ব করে এবং ভিত্তি মান যা ইনপুট স্ট্রিংয়ের ভিত্তিকে উপস্থাপন করে। এটি ইনপুট স্ট্রিং এর দীর্ঘ int মান প্রদান করে।