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

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

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

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

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

 long double wcstold (const wchar_t * str, wchar_t ** str_end);

Wcstold () फ़ंक्शन वाइड स्ट्रिंग और एक पॉइंटर को वाइड कैरेक्टर के रूप में अपने पैरामीटर के रूप में लेता है, एक वाइड पॉइंट की संख्या के रूप में वाइड स्ट्रिंग की सामग्री की व्याख्या करता है और एक लंबी डबल वैल्यू देता है।

wcstold () पैरामीटर

  • str: एक विस्तृत स्ट्रिंग जिसमें फ्लोटिंग पॉइंट संख्या का प्रतिनिधित्व होता है।
  • str_end: एक पॉइंटर को पॉइंटर से एक विस्तृत वर्ण तक। Str_end का मान फ़ंक्शन द्वारा अगले वैध वर्ण के बाद str में अगले वर्ण पर सेट होता है। यह पैरामीटर अशक्त सूचक भी हो सकता है।

wcstold () वापसी मान

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

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

यदि परिवर्तित मान सीमा से बाहर है, तो एक सीमा त्रुटि होती है और एक सकारात्मक या नकारात्मक HUGE_VAL वापस आ जाता है।

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

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str() = L"93.410u03b7u05ea"; wchar_t *end; long double value; value = wcstold(str,&end); wcout << L"Wide String = " << str << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 वाइड स्ट्रिंग = 93.410η लंबी डबल वैल्यू = 93.41 स्ट्रींग =। ת

उदाहरण 2: wcstold () फ़ंक्शन अनुगामी वर्णों के बिना

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str() = L"93.410"; wchar_t *end; long double value; value = wcstold(str,&end); wcout << L"Wide String = " << str << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 वाइड स्ट्रिंग = 93.410 लॉन्ग डबल वैल्यू = 93.41 एंड स्ट्रिंग =

Wcstold () फ़ंक्शन के लिए एक मान्य फ़्लोटिंग-पॉइंट मान में एक वैकल्पिक + या - साइन इन निम्नलिखित सेटों में से एक होता है:

  • दशमलव फ़्लोटिंग-पॉइंट मान के लिए :
    • दशमलव अंकों (0-9) का एक समूह, वैकल्पिक रूप से दशमलव बिंदु (।) युक्त। उदाहरण के लिए: 13.170, -5.63, आदि।
    • एक वैकल्पिक प्रतिपादक भाग (ई या ई) जिसके बाद एक वैकल्पिक + या - चिह्न अंक और दशमलव अंकों का गैर-खाली क्रम है। उदाहरण के लिए: 3.46101e + 007, 13.19e-013, आदि।
  • हेक्साडेसिमल फ्लोटिंग-पॉइंट वैल्यू के लिए :
    • 0x या 0X से शुरू होने वाली एक स्ट्रिंग, जिसके बाद हेक्साडेसिमल अंकों का एक गैर-खाली अनुक्रम होता है, वैकल्पिक रूप से दशमलव बिंदु (!) से युक्त होता है। उदाहरण के लिए: 0xfa5, -0xb1f.24, आदि।
    • एक वैकल्पिक प्रतिपादक भाग (p या P) जिसके बाद एक वैकल्पिक + या - चिह्न और हेक्साडेसिमल अंकों का गैर-खाली क्रम है। उदाहरण के लिए: 0x51c.23p5, -0x2a.3p-3, आदि।
  • अनंत :
    • जानकारी या जानकारी (मामले की अनदेखी)। उदाहरण के लिए: -इनफ, इंफीनेटी, आदि।
  • NaN (संख्या नहीं) :
    • NAN या NAN अनुक्रम (मामले की अनदेखी) जहां अनुक्रम वर्णों का एक अनुक्रम होता है जिसमें केवल अल्फ़ान्यूमेरिक वर्ण या अंडरस्कोर (_) होता है। परिणाम एक शांत NaN होता है। उदाहरण के लिए: नान, NaNab1, आदि।

उदाहरण 3: घातांक () घातांक और हेक्साडेसिमल के साथ कैसे काम करता है?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"34.901u00c6u00f1"; wchar_t str2() = L"0Xfc1.a12u03c7r12"; wchar_t *end; long double value; value = wcstold(str1,&end); wcout << L"Wide String = " << str1 << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstold(str2,&end); wcout << L"Wide String = " << str2 << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 वाइड स्ट्रिंग = 34.901Æ Long लॉन्ग डबल मान = 34.901 समाप्ति स्ट्रिंग = वाइड वाइड स्ट्रिंग = 0Xfc1.a12χr12 लॉन्ग डबल मान = 4033.63 समाप्ति स्ट्रिंग = χr12

उदाहरण 4: सूचना और NaN के लिए wcstold मामले

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"inFinityxu03a3y"; wchar_t str2() = L"NaN22u0429"; wchar_t *end; long double value; value = wcstold(str1,&end); wcout << L"Wide String = " << str1 << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstold(str2,&end); wcout << L"Wide String = " << str2 << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 वाइड स्ट्रिंग = inFinityxΣy लॉन्ग डबल मान = inf समाप्ति स्ट्रिंग = x Widey वाइड स्ट्रिंग = NaN22 = लॉन्ग डबल मान = नैन एंड स्ट्रिंग = 22F

सामान्य तौर पर, wcstold () फ़ंक्शन के लिए एक मान्य फ्लोटिंग पॉइंट तर्क निम्न रूप में है:

 (व्हाट्सएप) (- | +) (अंक) (.digits) ((ई | ई) (- | + +) अंक)

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

फिर, इस चरित्र से शुरुआत करते हुए, यह संभव के रूप में कई वर्ण लेता है जो एक मान्य फ़्लोटिंग-पॉइंट प्रतिनिधित्व बनाता है और उन्हें फ़्लोटिंग पॉइंट मान में कनवर्ट करता है। अंतिम वैध चरित्र str_end द्वारा इंगित ऑब्जेक्ट में संग्रहीत होने के बाद स्ट्रिंग से जो कुछ भी बचा है।

उदाहरण 5: प्रमुख व्हाट्सएप के साथ wcstold () फ़ंक्शन

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str() = L" 59.013u0915u0975"; wchar_t *end; long double value; value = wcstold(str,&end); wcout << L"Wide String = " << str << endl; wcout << L"Long Double value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 वाइड स्ट्रिंग = 59.013 कॵ लंबी डबल वैल्यू = 59.013 स्ट्रींग = क.01

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