इस लेख में हम C++ STL में std::mbrtoc16() फंक्शन के कार्य, सिंटैक्स और उदाहरणों पर चर्चा करेंगे।
std::mbrtoc16() क्या है?
std::mbrtoc16() फंक्शन C++ STL में एक इनबिल्ट फंक्शन है, जो
यदि संबंधित कैरेक्टर पॉइंटर null नहीं है, और अन्य सभी पैरामीटर्स भी स्वीकार किए जाते हैं तो यह संबंधित 16-बिट कैरेक्टर को परिवर्तित करेगा।
सिंटैक्स
size_t mbrtoc16( char16_t* pc16, char* str, size_t n, mbstate_t* ps);
पैरामीटर्स
फंक्शन निम्नलिखित पैरामीटर(पैरामीटर्स) स्वीकार करता है -
- pc16 - यह उस लोकेशन का पॉइंटर है जहां हम आउटपुट स्टोर करना चाहते हैं।
- str - कैरेक्टर स्ट्रिंग जिसे इनपुट के रूप में उपयोग किया जाता है।
- n - यह उन बाइट्स की संख्या है जिन्हें चेक किया जाना है।
- ps - जब हम मल्टीबाइट स्ट्रिंग की व्याख्या कर रहे होते हैं तो यह स्टेट ऑब्जेक्ट का पॉइंटर होता है।
रिटर्न वैल्यू
यह फंक्शन निम्नलिखित शर्त के अनुसार अलग-अलग मान लौटाता है -
- 0 - फंक्शन शून्य लौटाएगा जब str में परिवर्तित होने वाला कैरेक्टर NULL हो।
- 1...n - कैरेक्टर स्ट्रिंग *str से परिवर्तित मल्टीबाइट कैरेक्टर के बाइट्स की संख्या।
- -3 - यदि सरोगेट पेयर है मतलब, char16_t मल्टी-char16_t से है। इनपुट से कोई बाइट्स नहीं बनाए जाने हैं।
- -2 - जब अगले n बाइट्स अधूरे हों लेकिन अब तक वैध मल्टीबाइट कैरेक्टर हो तो हमें -2 मिलेगा।
- -1 - जब हमें एन्कोडिंग एरर का सामना करना पड़े, *pc16 में कुछ नहीं लिखा जाता।
उदाहरण
#include#include #include #include #include using namespace std; int main(void){ char16_t hold; char str[] = "I"; mbstate_t arr{}; int len; // फंक्शन को इनिशियलाइज़ करना len = mbrtoc16(&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("16-bit character = 0g%02hd\n", hold); }
आउटपुट
String is: I Length is: 1 16-bit character = 0g73