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

C ++ में wcstoul () फ़ंक्शन निर्दिष्ट बेस की अहस्ताक्षरित अभिन्न संख्या के रूप में एक विस्तृत स्ट्रिंग की सामग्री की व्याख्या करता है और एक अहस्ताक्षरित लंबे इंट के रूप में इसका मान लौटाता है।

Wcstoul () फ़ंक्शन भी किसी स्ट्रिंग के अंतिम वैध वर्ण के बाद पहले वर्ण को इंगित करने के लिए एक पॉइंटर सेट करता है यदि कोई हो, अन्यथा सूचक को अशक्त करने के लिए सेट किया गया है।

 आधार 10 और विस्तृत स्ट्रिंग L "29hi $" मान्य संख्यात्मक भाग के लिए -> 29 वैध संख्यात्मक भाग के बाद पहला वर्ण -> h

इसे हेडर फ़ाइल में परिभाषित किया गया है।

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

 अहस्ताक्षरित लंबा wcstoul (const wchar_t * str, wchar_t ** str_end, int base);

Wcstoul () फ़ंक्शन वाइड स्ट्रिंग str, पॉइंटर टू वाइड कैरेक्टर str_end और पूर्णांक मान - बेस को इस पैरामीटर के रूप में लेता है।

यह तब दिए गए आधार की अहस्ताक्षरित अभिन्न संख्या के रूप में विस्तृत स्ट्रिंग की सामग्री की व्याख्या करता है और एक अहस्ताक्षरित लंबे समय तक अंतर देता है।

wcstoul () पैरामीटर

  • str: एक विस्तृत स्ट्रिंग जिसमें अहस्ताक्षरित अभिन्न संख्या का प्रतिनिधित्व होता है।
  • str_end: एक पॉइंटर को एक पॉइंटर को एक विस्तृत चरित्र के लिए। Str_end का मान फ़ंक्शन द्वारा अगले वैध वर्ण के बाद str में अगले वर्ण पर सेट होता है। यह पैरामीटर एक शून्य सूचक भी हो सकता है, जिस स्थिति में इसका उपयोग नहीं किया जाता है।
  • आधार: अभिन्न मूल्य का आधार। आधार के लिए मान्य मानों का समूह (0, 2, 3,…, 35, 36) है।

wcstoul () वापसी मान

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

  • एक अहस्ताक्षरित लंबा int मान (जो स्ट्रिंग से परिवर्तित किया गया है)।
  • 0 यदि कोई वैध रूपांतरण नहीं किया जा सका।

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

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"101aau16b6"; wchar_t str2() = L"59"; wchar_t *end; unsigned long value; int base = 10; value = wcstoul(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Unsigned Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoul(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Unsigned Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 स्ट्रिंग मान = 101aa Long अनसाइन्टेड लॉन्ग इंट वैल्यू = 101 एंड स्ट्रिंग = आ value स्ट्रिंग वैल्यू = 59 अनसोल्ड लॉन्ग इंट वैल्यू = 59 एंड स्ट्रिंग =

Wcstoul () फ़ंक्शन के लिए मान्य पूर्णांक मान में निम्न शामिल हैं:

  • एक वैकल्पिक + या - संकेत।
  • अष्टक आधार के लिए एक उपसर्ग 0 (केवल आधार = 8 या 0 पर लागू होता है)।
  • हेक्साडेसिमल आधार के लिए एक उपसर्ग 0x या 0X (केवल तब लागू होता है जब आधार = 16 या 0)।
  • अंकों और / या अक्षर का एक क्रम (यदि आधार 10 से अधिक है)।

यदि तर्क में शुरुआत में एक माइनस (-) चिन्ह होता है, तो ऋणात्मक संख्या को एक अहस्ताक्षरित लंबे अंतर प्रकार में बदल दिया जाता है जो एक सकारात्मक संख्या है।

पैरामीटर बेस के लिए मान्य मान (0, 2, 3,…, 35, 36) है। आधार 2 के लिए मान्य अंकों का एक सेट है (0, 1) के लिए, आधार 3 है (0, 1, 2) और इसी तरह। 11 से 36 तक के आधारों के लिए, वैध अंकों में अक्षर शामिल हैं।

आधार 11 के लिए मान्य अंकों का सेट आधार के लिए (0, 1, 9, ए, ए) है, 12 (0, 1,…, 9, ए, ए, बी, बी) और इतने पर है।

उदाहरण 2: wcstoul () विभिन्न आधारों के साथ कार्य करता है

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wchar_t str() = L"311bzu03feu03ff"; wcout << str << L" to Unsigned Long Int with base-5 = " << wcstoul(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Int with base-12 = " << wcstoul(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Int with base-36 = " << wcstoul(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 311bz-को बेस -5 के साथ अनसाइन्टेड लॉन्ग इंट में = बेस -12 के साथ अनसोल्ड लॉन्ग इंट को = 311bzigned को बेस -12 = 5351 एंड स्ट्रिंग के साथ अनसोल्ड लॉन्ग इंट को = बेस -36 के साथ अनसोल्ड लॉन्ग इंट को बेस -36 = 5087231 एंड स्ट्रिंग = ϾϿ के साथ

Wcstoul () फ़ंक्शन सभी प्रमुख व्हाट्सएप वर्णों की उपेक्षा करता है जब तक कि प्राथमिक गैर-व्हाट्सएप चरित्र नहीं मिलता है।

सामान्य तौर पर, wcstoul () फ़ंक्शन के लिए एक मान्य पूर्णांक तर्क निम्न रूप में है:

 (व्हाट्सएप) (- | +) (0 | 0x) (अल्फ़ान्यूमेरिक वर्ण)

फिर, इस चरित्र से शुरुआत करते हुए, यह संभव के रूप में कई वर्ण लेता है जो एक वैध पूर्णांक प्रतिनिधित्व बनाता है और उन्हें एक अहस्ताक्षरित लंबे अंतर मान में परिवर्तित करता है।

अंतिम वैध चरित्र को नजरअंदाज करने के बाद स्ट्रिंग के जो कुछ भी बचा है, उसका परिणाम पर कोई प्रभाव नहीं पड़ता है।

उदाहरण 3: प्रमुख व्हाट्सएप और अमान्य रूपांतरण के लिए wcstoul () फ़ंक्शन

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L" 205u03e2x to Unsigned Long Int with base-5 = " << wcstoul(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Unsigned Long Int with base-12 = " << wcstoul(L"xu019cz201", &end, 12) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 205x बेस -5 के साथ अनसाइन्टेड लॉन्ग इन्ट -5 = 10 एंड स्ट्रिंग = 5Ɯx xƜz201 अनसोल्ड लॉन्ग इंट इन बेस -12 = 0 एंड स्ट्रिंग = xƜz201

यदि आधार 0 है, तो स्ट्रिंग के प्रारूप को देखकर संख्यात्मक आधार स्वचालित रूप से निर्धारित किया जाता है। यदि उपसर्ग 0 है, तो आधार अष्टक (8) है। यदि उपसर्ग 0x या 0X है, तो आधार हेक्साडेसिमल (16) है, अन्यथा आधार दशमलव (10) है।

उदाहरण 4: wcstoul () बेस 0 के साथ कार्य करता है

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L"0539u1e84 to Unsigned Long Int with base-0 = " << wcstoul(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Unsigned Long Int with base-0 = " << wcstoul(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Unsigned Long Int with base-0 = " << wcstoul(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 0539 05 बेस-0 के साथ अनसाइन्टेड लॉन्ग इंट में = 0 -43 एंड स्ट्रींग = 9x 0xa31 में अनसोल्ड लॉन्ग इंट के साथ बेस-0 = 2609 एंड स्ट्रिंग = ע 119x-अनसोल्ड लॉन्ग इंट टू बेस-0 = 119 एंड स्ट्रिंग = x s

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