इस लेख में हम C++ STL में काम करने, वाक्य रचना और std::mbrtoc32() फ़ंक्शन के उदाहरणों पर चर्चा करेंगे।
std::mbrtoc32() क्या है?
std::mbrtoc32() फ़ंक्शन C++ STL में एक इनबिल्ट फ़ंक्शन है, जिसे
यदि संबंधित वर्ण सूचक शून्य नहीं है, और अन्य सभी पैरामीटर भी स्वीकार किए जाते हैं तो यह संबंधित 32-बिट वर्ण को रूपांतरित कर देगा।
सिंटैक्स
size_t mbrtoc32( char32_t* pc32, char* str, size_t n, mbstate_t* ps);
पैरामीटर
फ़ंक्शन निम्नलिखित पैरामीटर को स्वीकार करता है -
- पीसी32 - यह उस स्थान का सूचक है जहां हम आउटपुट को संग्रहित करना चाहते हैं।
- 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