Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में mbtowc फंक्शन


mbtowc (मल्टीबाइट टू वाइड कैरेक्टर) एक मल्टीबाइट कैरेक्टर सीक्वेंस को वाइड कैरेक्टर (wchar_t) में बदलता है। यह <stdlib.h> में घोषित है।

सिंटैक्स

int mbtowc(wchar_t *pwc, const char *str, size_t n);

पैरामीटर्स

  • pwc: आउटपुट - परिणामी वाइड कैरेक्टर यहां स्टोर होता है।
  • str: इनपुट मल्टीबाइट सीक्वेंस का प्रारंभ।
  • n: जांचने के लिए अधिकतम बाइट्स।

रिटर्न वैल्यू

  • str != NULL: खपत बाइट्स की संख्या, 0 यदि नल बाइट, -1 यदि अमान्य सीक्वेंस।
  • str == NULL: नॉन-जीरो यदि स्टेट-डिपेंडेंट एन्कोडिंग, 0 यदि स्टेटलेस।

उदाहरण

#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <locale.h>

int main() {
    // लोकेल सेट करें (मल्टीबाइट सपोर्ट के लिए आवश्यक)
    setlocale(LC_ALL, "");
    
    const char *mbstr = "Hello 世界";  // UTF-8 स्ट्रिंग
    wchar_t wc;
    int bytes_consumed;
    
    printf("Multibyte string: %s\n", mbstr);
    
    // एक-एक करके कन्वर्ट करें
    const char *p = mbstr;
    while (*p) {
        bytes_consumed = mbtowc(&wc, p, MB_CUR_MAX);
        if (bytes_consumed <= 0) break;
        wprintf(L"Wide char: U+%04X, bytes: %d\n", wc, bytes_consumed);
        p += bytes_consumed;
    }
    
    return 0;
}

आउटपुट (UTF-8 लोकेल में)

Multibyte string: Hello 世界
Wide char: U+0048, bytes: 1
Wide char: U+0065, bytes: 1
Wide char: U+006C, bytes: 1
Wide char: U+006C, bytes: 1
Wide char: U+006F, bytes: 1
Wide char: U+0020, bytes: 1
Wide char: U+4E16, bytes: 3
Wide char: U+754C, bytes: 3

संबंधित फंक्शन्स

  • mblen: मल्टीबाइट कैरेक्टर की लंबाई निर्धारित करता है।
  • wctomb: वाइड कैरेक्टर को मल्टीबाइट में बदलता है।
  • mbstowcs, wcstombs: स्ट्रिंग-स्तर कन्वर्जन।
  • आधुनिक कोड: iconv या C++11 std::wstring_convert (अप्रचलित) / std::codecvt उपयोग करें।

नोट

मूल लेख का उदाहरण अपूर्ण था (mblen(NULL, MB_CUR_MAX) गलत उपयोग)। ऊपर सही उपयोग दिखाया गया है।

  1. C में fillpoly() फ़ंक्शन C में fillpoly() फ़ंक्शन

    अवधारणा अब हेडर फ़ाइल graphics.h में fillpoly() फ़ंक्शन होता है जिसे त्रिकोण, आयत, पंचभुज, षट्कोण आदि जैसे बहुभुज को बनाने और भरने के लिए लागू किया जाता है। इसलिए इस फ़ंक्शन को drawpoly() के समान तर्कों की आवश्यकता होती है। सिंटैक्स void fillpoly( int number, int *polypoints ); इस मामले में, number

  1. C ग्राफिक्स: bar() फ़ंक्शन C ग्राफिक्स: bar() फ़ंक्शन

    bar() फ़ंक्शन bar() C ग्राफिक्स में एक फ़ंक्शन है जो एक भरा हुआ आयत (बार) खींचता है। यह graphics.h हेडर फ़ाइल में परिभाषित है। सिंटैक्स void bar(int left, int top, int right, int bottom); पैरामीटर left, top: ऊपरी-बाएं कोने के निर्देशांक (x, y) right, bottom: निचले-दाएं कोने के निर्देशांक (x, y)

  1. - SQL Server में STR फंक्शन

    विवरण SQL Server में STR फंक्शन फंक्शन में निर्दिष्ट संख्या को दर्शाने वाली स्ट्रिंग लौटाता है। सिंटैक्स SQL Server में STR फंक्शन का उपयोग करने के लिए, हम निम्न सिंटैक्स का उपयोग करते हैं: STR(number, length, decimal) पैरामीटर्स: number: स्ट्रिंग में कन्वर्ट करने के लिए न्यूमेरिक मान। length: लौ