এই নিবন্ধে আমরা C++ STL-এ std::mbsrtowcs() ফাংশনের কাজ, সিনট্যাক্স এবং উদাহরণ নিয়ে আলোচনা করব।
std::mbsrtowcs() কি?
std::mbsrtowcs() ফাংশন হল C++ STL-এ একটি অন্তর্নির্মিত ফাংশন, যা
সিনট্যাক্স
size_t mbsrtowcs( wchar_t* pwc, char** str, size_t n, mbstate_t* ps);
পরামিতি
ফাংশন নিম্নলিখিত পরামিতি(গুলি) −
গ্রহণ করে- pwc − এটি সেই অবস্থানের নির্দেশক যেখানে আমরা আউটপুট সংরক্ষণ করতে চাই।
- str − ক্যারেক্টার স্ট্রিং যা ইনপুট হিসেবে ব্যবহৃত হয়।
- n − এটা হল বাইটের সংখ্যা যা চেক করতে হবে।
- ps − যখন আমরা মাল্টিবাইট স্ট্রিংকে ব্যাখ্যা করি তখন এটি স্টেট অবজেক্টের নির্দেশক৷ ৷
রিটার্ন মান
এই ফাংশন রিটার্ন মান নিম্নলিখিত শর্ত অনুযায়ী পৃথক হয় −
- 0 − যখন str-এর অক্ষরটি NULL হয় তখন ফাংশনটি শূন্য দেখাবে।
- 1…n− নাল এন্ডিং অক্ষরগুলির বাইটের সংখ্যা যা রূপান্তরিত এবং স্ট্রিং *str এ সংরক্ষণ করা হয়।
- -1 − রূপান্তর করার সময় ত্রুটি EILSEQ তে সেট করা থাকলে আমরা এটি পাই৷
উদাহরণ
#include <bits/stdc++.h> using namespace std; int main(){ setlocale(LC_ALL, "en_US.utf8"); const char* ch = "\u0777\u0755"; wchar_t arr[20]; mbstate_t hold = mbstate_t(); int highest = 10; int val = mbsrtowcs ( arr, &ch, highest, &hold ); wcout << L"Wide characters are: "<< val << endl; wcout << L"Given Wide character is: " << arr << endl; return 0; }
আউটপুট
Wide characters are: 2 Given Wide character is: ݷݕ৷
উদাহরণ
#include <bits/stdc++.h> using namespace std; int main() { setlocale(LC_ALL, "en_US.utf8"); const char* ch = u8"z\u00df\u6c34"; wchar_t arr[20]; mbstate_t hold = mbstate_t(); int highest = 10; int val = mbsrtowcs ( arr, &ch, highest, &hold ); wcout << L"Total Wide characters are: "<< val << endl; wcout << L"Given Wide character is: " << arr << endl; return 0; }
আউটপুট
Total Wide characters are: 3 Given Wide character is: zß水