কম্পিউটার টিউটোরিয়াল

C/C++-তে mbsrtowcs() ফাংশন


এই আর্টিকেলে, আমরা C++ STL-এ std::mbsrtowcs() ফাংশনের ওয়ার্কিং, সিনট্যাক্স এবং উদাহরণ আলোচনা করব।

std::mbsrtowcs() কী?

std::mbsrtowcs() ফাংশন C++ STL-এ একটি ইনবিল্ট ফাংশন, যা <cwchar> হেডার ফাইলে ডিফাইন করা আছে। mbsrtowcs() মানে এটি নাল-টার্মিনেটেড মাল্টিবাইট ক্যারেক্টার স্ট্রিংকে (যার প্রথম বাইট *src) এর ওয়াইড ক্যারেক্টার রিপ্রেজেন্টেশনে কনভার্ট করে। এই ফাংশনটি কনভার্শন অনুযায়ী ভ্যালু রিটার্ন করে।

সিনট্যাক্স

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 − কনভার্শন সময় এরর হলে এই ভ্যালু मिलে, errno 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ß水



  1. C/C++-তে mbrtowc() ফাংশন

  2. C/C++-তে putwchar() ফাংশন

  3. C/C++-তে mbrtoc16() ফাংশন উদাহরণসহ

  4. C/C++-তে system() ফাংশন: কম্যান্ড এক্সিকিউশন