इस mbrtowc () फ़ंक्शन का उपयोग मल्टीबाइट अनुक्रम को विस्तृत वर्ण स्ट्रिंग में बदलने के लिए किया जाता है। यह बाइट में मल्टीबाइट वर्णों की लंबाई देता है। सिंटैक्स नीचे जैसा है।
mbrtowc (wchar_t* wc, const char* s, size_t max, mbstate_t* ps)
तर्क हैं -
- wc वह सूचक है जो इंगित करता है कि परिणामी विस्तृत वर्ण कहाँ संग्रहीत किया जाएगा।
- s इनपुट के रूप में वर्ण स्ट्रिंग को मल्टीबाइट करने का सूचक है
- अधिकतम बाइट्स की अधिकतम संख्या है, जिसकी जांच की जा सकती है मल्टीबाइट स्ट्रिंग की व्याख्या करते समय
- ps रूपांतरण स्थिति की ओर इशारा कर रहा है।
उदाहरण
#include <bits/stdc++.h> using namespace std; void display(const char* s) { mbstate_t ps = mbstate_t(); // initial state int s_len = strlen(s); const char* n = s + s_len; int len; wchar_t wide_char; while ((len = mbrtowc(&wide_char, s, n - s, &ps)) > 0) { wcout << "The following " << len << " bytes are for the character " << wide_char << '\n'; s += len; } } main() { setlocale(LC_ALL, "en_US.utf8"); const char* str = u8"z\u00cf\u7c38\U00000915"; display(str); }
आउटपुट
The following 1 bytes are for the character z The following 2 bytes are for the character Ï The following 3 bytes are for the character 簸 The following 3 bytes are for the character क