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

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

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

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

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

Mbrtoc32 () फंक्शन सबसे अधिक n मल्टीबाइट कैरेक्टर में परिवर्तित होता है, जो कि इसके समतुल्य utf-32 कैरेक्टर के द्वारा दर्शाया जाता है और इसे PC32 द्वारा बताई गई मेमोरी लोकेशन में स्टोर करता है।

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

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

mbrtoc32 () पैरामीटर

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

mbrtoc32 () वापसी मान

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

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

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

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

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

 मल्टीबाइट स्ट्रिंग = x लंबाई = 1 32-बिट चरित्र = 0x00000078

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