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

C/C++-এ mbrtowc() ফাংশন


`mbrtowc()` ফাংশনটি ব্যবহার করা হয় মাল্টিবাইট সিকোয়েন্স (multibyte sequence) কে ওয়াইড ক্যারেক্টার স্ট্রিং (wide character string) এ রূপান্তর করতে। এটি মাল্টিবাইট ক্যারেক্টারের দৈর্ঘ্য বাইটে রিটার্ন করে। সিনট্যাক্স নিচের মত:

mbrtowc (wchar_t* wc, const char* s, size_t max, mbstate_t* ps)

আর্গুমেন্টগুলো হলো:

  • wc: পয়েন্টার যা নির্দেশ করে রেজাল্টিং ওয়াইড ক্যারেক্টার কোথায় স্টোর হবে।
  • s: ইনপুট হিসেবে মাল্টিবাইট ক্যারেক্টার স্ট্রিংয়ের পয়েন্টার।
  • max: s-এ যেনোবাবেন বাইটের সর্বোচ্চ সংখ্যা।
  • ps: কনভার্শন স্টেট (conversion state) কে পয়েন্ট করে, যা মাল্টিবাইট স্ট্রিং ইন্টারপ্রেট করার সময় ব্যবহার হয়।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;

void display(const char* s) {
    mbstate_t ps = mbstate_t(); // প্রারম্ভিক স্টেট
    int s_len = strlen(s);
    const char* n = s + s_len;
    int len;
    wchar_t wide_char;
    while ((len = mbrtowc(&wide_char, s, n - s, &ps)) > 0) {
        wcout << "The following " << len << " bytes are for the character " << wide_char << '\n';
        s += len;
    }
}

int main() {
    setlocale(LC_ALL, "en_US.utf8");
    const char* str = u8"z\u00cf\u7c38\U00000915";
    display(str);
}

আউটপুট

The following 1 bytes are for the character z
The following 2 bytes are for the character Ï
The following 3 bytes are for the character 簸
The following 3 bytes are for the character क
  1. C/C++-তে putwchar() ফাংশন

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

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

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