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

C/C++-এ c16rtomb() ফাংশন কী এবং কীভাবে কাজ করে?


C++-এ ১৬-বিট ক্যারেক্টার রিপ্রেজেন্টেশন ব্যবহার করা যায়। c16rtomb() ফাংশনটি ১৬-বিট ক্যারেক্টারকে সংকীর্ণ মাল্টি-বাইট ক্যারেক্টার রিপ্রেজেন্টেশনে রূপান্তর করতে ব্যবহৃত হয়। এই ফাংশনটিও uchar.h হেডার ফাইলে পাওয়া যায়।

এই ফাংশন তিনটি প্যারামিটার নেয়:

  • মাল্টি-বাইট ক্যারেক্টার সংরক্ষণের জন্য স্ট্রিং
  • রূপান্তর করার ১৬-বিট ক্যারেক্টার
  • mbstate_t টাইপের অবজেক্টের পয়েন্টার, যা মাল্টি-বাইট স্ট্রিং ব্যাখ্যা করতে ব্যবহৃত হয়

সফল হলে এই ফাংশন ক্যারেক্টার অ্যারেতে লেখা বাইটের সংখ্যা রিটার্ন করে, ব্যর্থ হলে -1 রিটার্ন করে। নিচে উদাহরণ দেওয়া হলো:

উদাহরণ

#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;

int main() {
    const char16_t myStr[] = u"Hello World";
    char dest[50];
    mbstate_t p{};
    size_t length;
    int j = 0;
    while (myStr[j]) {
        length = c16rtomb(dest, myStr[j], &p);
        if ((length == 0) || (length > 50))
            break;
        for (int i = 0; i < length; ++i)
            cout << dest[i];
        j++;
    }
    return 0;
}

আউটপুট

Hello World

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

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

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

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