সি ++ 11 এর জন্য আপডেট
C++11
স্ট্যান্ডার্ড হিসাবে , স্ট্রিং-থেকে-নম্বর রূপান্তর এবং তদ্বিপরীত স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্নির্মিত। নিম্নলিখিত 21 <string>
টি অনুচ্ছেদে উপস্থিত রয়েছে (অনুচ্ছেদ 21.5 অনুসারে)
স্ট্রিং থেকে সংখ্যাসূচক
float stof(const string& str, size_t *idx = 0);
double stod(const string& str, size_t *idx = 0);
long double stold(const string& str, size_t *idx = 0);
int stoi(const string& str, size_t *idx = 0, int base = 10);
long stol(const string& str, size_t *idx = 0, int base = 10);
unsigned long stoul(const string& str, size_t *idx = 0, int base = 10);
long long stoll(const string& str, size_t *idx = 0, int base = 10);
unsigned long long stoull(const string& str, size_t *idx = 0, int base = 10);
এর প্রত্যেকটি ইনপুট হিসাবে একটি স্ট্রিং নেয় এবং এটিকে কোনও সংখ্যায় রূপান্তর করার চেষ্টা করবে। যদি কোনও বৈধ সংখ্যাটি নির্মাণ করা যায় না, উদাহরণস্বরূপ কোনও সংখ্যার ডেটা না থাকায় বা সংখ্যাটি প্রকারের বাইরে সীমার বাইরে থাকে তবে একটি ব্যতিক্রম ছুঁড়ে দেওয়া হয় ( std::invalid_argument
বা std::out_of_range
)।
যদি রূপান্তর সফল হয় এবং idx
না হয় 0
,idx
প্রথম অক্ষর যে ডিকোডিং জন্য ব্যবহার করা হয়েছিল সূচক উপস্থিত থাকবে। এটি শেষ চরিত্রের পিছনে একটি সূচক হতে পারে।
অবশেষে, অবিচ্ছেদ্য প্রকারগুলি 9 টির চেয়ে বেশি সংখ্যার জন্য একটি বেস নির্দিষ্ট করার অনুমতি দেয়, বর্ণমালাটি ধরে নেওয়া হয় ( a=10
অবধি z=35
)। ভাসমান-পয়েন্ট সংখ্যা , স্বাক্ষরিত পূর্ণসংখ্যা এবং এর জন্য এখানে সঠিক ফর্ম্যাটিং সম্পর্কে পার্স করা যায় এমন আরও তথ্য আপনি খুঁজে পেতে পারেন স্বাক্ষরবিহীন পূর্ণ ।
অবশেষে, প্রতিটি ফাংশনের জন্য একটি ওভারলোডও রয়েছে যা এ গ্রহণ করে std::wstring
এটি প্রথম প্যারামিটার হিসাবে ।
স্ট্রিংয়ের সংখ্যাসূচক
string to_string(int val);
string to_string(unsigned val);
string to_string(long val);
string to_string(unsigned long val);
string to_string(long long val);
string to_string(unsigned long long val);
string to_string(float val);
string to_string(double val);
string to_string(long double val);
এগুলি আরও সোজা, আপনি উপযুক্ত সংখ্যার প্রকারটি পাস করুন এবং আপনি একটি স্ট্রিং ফিরে পাবেন। ফর্ম্যাট করার বিকল্পগুলির জন্য আপনাকে এখানে C ++ 03 স্ট্রিংস্ট্রিম বিকল্পে ফিরে যেতে হবে এবং স্ট্রিম ম্যানিপুলেটরগুলি ব্যবহার করা উচিত, যেমন এখানে অন্য একটি উত্তরে ব্যাখ্যা করা হয়েছে।
মন্তব্যে উল্লিখিত হিসাবে এই ফাংশনগুলি একটি ডিফল্ট মান্টিসা নির্ভুলতার পিছনে পড়ে যা সম্ভবত সর্বাধিক নির্ভুলতা নয়। আপনার অ্যাপ্লিকেশনটির জন্য যদি আরও নির্ভুলতার প্রয়োজন হয় তবে অন্যান্য স্ট্রিং ফর্ম্যাটিং পদ্ধতিতে ফিরে যাওয়া ভাল।
এছাড়াও একই জাতীয় ফাংশন সংজ্ঞায়িত করা হয়েছে যেগুলি নামকরণ করা হয়েছে to_wstring
, এগুলি একটি আসবে std::wstring
।