C++ में, हम 16-बिट कैरेक्टर रिप्रेजेंटेशन का उपयोग कर सकते हैं। c16rtomb () फ़ंक्शन का उपयोग 16-बिट वर्ण प्रतिनिधित्व को संकीर्ण बहु-बाइट वर्ण प्रतिनिधित्व में बदलने के लिए किया जाता है। हम इस फ़ंक्शन को uchar.h हेडर फ़ाइल के अंदर पा सकते हैं।
यह फ़ंक्शन तीन पैरामीटर लेता है। ये हैं -
- वह स्ट्रिंग जहां बहु-बाइट वर्ण संग्रहीत किया जाएगा
- रूपांतरित करने के लिए 16-बिट वर्ण
- mbstate_t ऑब्जेक्ट प्रकार का सूचक। जिसका उपयोग मल्टीबाइट स्ट्रिंग की व्याख्या करने के लिए किया जाता है।
यह फ़ंक्शन वर्ण सरणी में लिखे गए बाइट्स की संख्या देता है, जब यह सफल होता है, अन्यथा -1 देता है। आइए बेहतर विचार प्राप्त करने के लिए एक उदाहरण देखें।
उदाहरण
#include <iostream> #include <uchar.h> #include <wchar.h> using namespace std; int main() { const char16_t myStr[] = u"Hello World"; char dest[50]; mbstate_t p{}; size_t length; int j = 0; while (myStr[j]) { length = c16rtomb(dest, myStr[j], &p); //get length from c16rtomb() method if ((length == 0) || (length > 50)) break; for (int i = 0; i < length; ++i) cout << dest[i]; j++; } }
आउटपुट
Hello World