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

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

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

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

 size_t mbrlen (const char * s, size_t n, mbstate_t * ps);

Mbrlen () फ़ंक्शन स्ट्रिंग की जांच करता है जिसका पहला बाइट एस द्वारा इंगित किया गया है और वर्तमान रूपांतरण स्थिति पीएस के लिए बाइट्स में इसका आकार निर्धारित करता है। एस में अधिकांश एन बाइट्स की जांच की जाती है।

mbrlen () पैरामीटर

  • s: मल्टीबाइट स्ट्रिंग के पहले बाइट को इंगित करने के लिए पॉइंटर।
  • n: जांच करने के लिए बाइट्स की MAximum संख्या।
  • ps: किसी रूपांतरण स्थिति को परिभाषित करने वाली mbstate_t ऑब्जेक्ट को इंगित करता है।

mbrlen () रिटर्न मान

Mbrlen () फ़ंक्शन रिटर्न:

  • बाइट्स की संख्या जो एक वैध मल्टीबाइट चरित्र को पूरा करती है।
  • 0 यदि वर्ण निरर्थक है।
  • -1 एन्कोडिंग त्रुटि होती है।
  • -2 अगर अगले n बाइट्स एक पूर्ण मल्टीबाइट चरित्र का प्रतिनिधित्व नहीं करता है।

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

 #include #include #include using namespace std; void test_mbrlen(const char *s, size_t n) ( mbstate_t ps = mbstate_t(); int retVal = mbrlen(s, n, &ps); if (retVal == -2) cout << "Next " << n << " byte(s) doesn't represent a complete multibyte character" << endl; else if (retVal == -1) cout << "Next " << n << " byte(s) doesn't represent a valid multibyte character" << endl; else cout << "Next " << n << " byte(s) of " << s << " holds " << retVal << " byof multibyte character" << endl; ) int main() ( setlocale(LC_ALL, "en_US.utf8"); char str() = "u00b5"; test_mbrlen(str, 1); test_mbrlen(str, 5); return 0; )

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

 अगला 1 बाइट (एस) एक पूर्ण मल्टीबाइट चरित्र का प्रतिनिधित्व नहीं करता है अगला 5 बाइट (एस) का मल्टीबाइट चरित्र के 2 बाइट रखता है

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