কম্পিউটার

C/C++ প্রোগ্রামে mbrtowc() ফাংশন


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

std::mbrtowc() কি?

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

সিনট্যাক্স

size_t mbrtowc( wchar_t* pwc, char* str, size_t n, mbstate_t* ps);

পরামিতি

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

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

রিটার্ন মান

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

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

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void print_(const char* ch){
   mbstate_t temp = mbstate_t();
   int cal = strlen(ch);
   const char* i = ch + cal;
   int total;
   wchar_t con;
   while ((total = mbrtowc(&con, ch, i - ch, &temp)) > 0){
      wcout << "Next " << total <<" bytes are the character " << con << '\n';
      ch += total;
   }
}
int main(){
   setlocale(LC_ALL, "en_US.utf8");
   const char* len = u8"z\u00df\u6c34";
   print_(len);
}

আউটপুট

Next 1 bytes are the character z
Next 2 bytes are the character ß
Next 3 bytes are the character 水

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
void print_(const char* ch){
   mbstate_t temp = mbstate_t();
   int cal = strlen(ch);
   const char* i = ch + cal;
   int total;
   wchar_t con;
   while ((total = mbrtowc(&con, ch, i - ch, &temp)) > 0){
      wcout << "Next " << total <<" bytes are the character " << con << '\n';
      ch += total;
   }
}
int main(){
   setlocale(LC_ALL, "en_US.utf8");
   const char* len = u8"\xE2\x88\x83y\xE2\x88\x80x\xC2";
   print_(len);
}

আউটপুট

Next 3 bytes are the character ∃
Next 1 bytes are the character y
Next 3 bytes are the character ∀
Next 1 bytes are the character x

  1. C/C++ এ putwchar() ফাংশন

  2. mbrtoc16() C/C++ এ উদাহরণ সহ

  3. mbsrtowcs() ফাংশন C/C++ এ

  4. C/C++ এ সিস্টেম() ফাংশন