C ++ mbrtoc16 () - C ++ मानक पुस्तकालय

C ++ में mbrtoc16 () फ़ंक्शन एक संकीर्ण मल्टीबाइट चरित्र को 16 बिट चरित्र प्रतिनिधित्व में परिवर्तित करता है।

Mbrtoc16 () फ़ंक्शन को हेडर फ़ाइल में परिभाषित किया गया है।

mbrtoc16 () प्रोटोटाइप

 size_t mbrtoc16 (char16_t * pc16, const char * s, size_t n, mbstate_t * ps);

Mbrtoc16 () फ़ंक्शन s के द्वारा दर्शाए गए अधिकांश n मल्टीबाइट कैरेक्टर में परिवर्तित होता है, जो इसके समतुल्य utf-16 कैरेक्टर के लिए होता है और इसे PC16 द्वारा इंगित मेमोरी लोकेशन में स्टोर करता है।

यदि n एक अशक्त सूचक का प्रतिनिधित्व करता है, n और pc16 के मानों को अनदेखा किया जाता है और कॉल mbrtoc16 (NULL, "", 1, ps) के बराबर है।

यदि परिणामस्वरूप उत्पन्न वर्ण शून्य है, तो रूपांतरण स्थिति * ps प्रारंभिक पारी अवस्था का प्रतिनिधित्व करता है।

mbrtoc16 () पैरामीटर

  • PC16: परिणामी 16 बिट वर्ण को संग्रहीत करने के लिए स्मृति स्थान के लिए सूचक।
  • s: कन्वर्ट करने के लिए मल्टीबाइट चरित्र को इंगित करता है।
  • n: कन्वर्ट करने के लिए बाइट्स की अधिकतम संख्या।
  • ps: मल्टीबाइट स्ट्रिंग की व्याख्या करते समय उपयोग किए जाने वाले mbstate_t ऑब्जेक्ट के लिए एक सूचक।

mbrtoc16 () वापसी मान

Mbrtoc16 () फ़ंक्शन निम्न मानों में से पहला रिटर्न देता है जो नीचे के मामलों से मेल खाता है:

  • ० यदि परिवर्तित वर्ण एक अशक्त वर्ण है।
  • मल्टीबाइट चरित्र के बाइट्स (अधिकांश n पर) की संख्या जो सफलतापूर्वक 16 बिट चरित्र में परिवर्तित हो गई थी।
  • -3 यदि char16_tएक मल्टी- char16_t चरित्र (जैसे एक सरोगेट जोड़ी) से अगला अब * pc16 को लिखा गया है। इस मामले में इनपुट से कोई बाइट्स संसाधित नहीं होते हैं।
  • -2 अगर अगले n बाइट्स एक अधूरा है, लेकिन अभी तक वैध, मल्टीबैट चरित्र। इस मामले में * pc16 को कुछ भी नहीं लिखा गया है।
  • -1 अगर एन्कोडिंग त्रुटि होती है। इस मामले में कुछ भी नहीं * pc16 को लिखा है, errno पर सेट है EILSEQ और * ps का मूल्य अनिर्दिष्ट है।

उदाहरण: mbrtoc16 () फ़ंक्शन कैसे काम करता है?

 #include #include #include #include using namespace std; int main(void) ( char16_t pc16; char s() = "x" ; mbstate_t ps(); int length; length = mbrtoc16(&pc16, s, MB_CUR_MAX, &ps); if (length < 0) ( perror("mbrtoc16() fails to convert"); exit(-1); ) cout << "Multibyte string = " << s << endl; cout << "Length = " << length << endl; printf ("16-bit character = 0x%04hx", pc16); return 0; )

जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 मल्टीबाइट स्ट्रिंग = एक्स लेंग्ट> एच = 1 16-बिट चरित्र = 0x0078

दिलचस्प लेख...