কম্পিউটার

C/C++ এ mbrtoc32() উদাহরণ সহ


এই নিবন্ধে আমরা C++ STL-এ std::mbrtoc32() ফাংশনের কাজ, বাক্য গঠন এবং উদাহরণ নিয়ে আলোচনা করব।

std::mbrtoc32() কি?

std::mbrtoc32() ফাংশন হল C++ STL-এ একটি অন্তর্নির্মিত ফাংশন, যা হেডার ফাইলে সংজ্ঞায়িত করা হয়েছে। এই ফাংশনটি একটি সংকীর্ণ মাল্টিবাইট অক্ষরকে UTF-32-অক্ষরের উপস্থাপনায় রূপান্তর করতে ব্যবহৃত হয়।

যদি সংশ্লিষ্ট অক্ষর পয়েন্টারটি শূন্য না হয়, এবং অন্যান্য সমস্ত পরামিতিও গ্রহণ করা হয় তবে এটি সংশ্লিষ্ট 32-বিট অক্ষরকে রূপান্তর করবে।

সিনট্যাক্স

size_t mbrtoc32( char32_t* pc32, char* str, size_t n, mbstate_t* ps);

পরামিতি

ফাংশন নিম্নলিখিত প্যারামিটার(গুলি) −

গ্রহণ করে
  • pc32 − এটি সেই অবস্থানের নির্দেশক যেখানে আমরা আউটপুট সংরক্ষণ করতে চাই।
  • str − ক্যারেক্টার স্ট্রিং যা ইনপুট হিসেবে ব্যবহৃত হয়।
  • n − এটা হল বাইটের সংখ্যা যা চেক করতে হবে।
  • ps − যখন আমরা মাল্টিবাইট স্ট্রিং ব্যাখ্যা করি তখন এটি স্টেট অবজেক্টের নির্দেশক৷

রিটার্ন মান

এই ফাংশন রিটার্ন মান নিম্নলিখিত শর্ত অনুযায়ী পৃথক হয় −

  • 0 − যখন str-এর অক্ষরটি NULL হয় তখন ফাংশনটি শূন্য দেখাবে।
  • 1…n − মাল্টিবাইট অক্ষরের বাইটের সংখ্যা যা অক্ষর স্ট্রিং *str থেকে রূপান্তরিত হয়।
  • -3 − যদি একটি সারোগেট জোড়া থাকে মানে, char32_t একটি মাল্টি-char32_t থেকে। ইনপুট থেকে কোনো বাইট তৈরি করা হবে না।
  • -2 − পরবর্তী n বাইট অসম্পূর্ণ হলে আমরা -2 পাব কিন্তু এখন পর্যন্ত বৈধ মাল্টিবাইট অক্ষর।
  • -1 − যখন আমরা একটি এনকোডিং ত্রুটির সম্মুখীন হই তখন আমরা -1 পাই, *pc32 এ কিছুই লেখা হয় না।

উদাহরণ

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;
int main(void) {
   char32_t hold;
   char str[] = "I";
   mbstate_t arr{};
   int len;
   // initializing the function
   len = mbrtoc32(&hold, str, MB_CUR_MAX, &arr);
   if (len < 0) {
      perror("conversion failed");
      exit(-1);
   }
   cout << "String is: " << str << endl;
   cout << "Length is: " << len << endl;
   printf("32-bit character = 0g%02hd\n", hold);
}

আউটপুট

String is: I
Length is: 1
32-bit character = 0g73

উদাহরণ

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <uchar.h>
#include <wchar.h>
using namespace std;
int main(void){
   char32_t hold;
   char str[] = "I";
   mbstate_t arr{};
   int len;
   // initializing the function
   len = mbrtoc32(&hold, str, MB_CUR_MAX, &arr);
   if (len < 0){
      perror("conversion failed");
      exit(-1);
   }
   cout << "String is: " << str << endl;
   cout << "Length is: " << len << endl;
   printf("32-bit character = 0x%08hx\n", hold);
}

আউটপুট

String is: I
Length is: 1
32-bit character = 0x0x000000490

  1. উদাহরণ সহ C++-এ ঋণাত্মক_দ্বিপদ_বণ্টন

  2. C++ STL-এ মাল্টিসেট max_size() উদাহরণ সহ

  3. উদাহরণ সহ C/C++-এ iswgraph()

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