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

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

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

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

 आधार 10 और स्ट्रिंग "41aac" मान्य संख्यात्मक भाग के लिए -> 42 वैध सांख्यिक भाग के बाद पहला चरित्र -> ए

strtoull () प्रोटोटाइप (C ++ 11 मानक के अनुसार)

 अहस्ताक्षरित लंबे लंबे int strtoull (const char * str, char ** end, int base);

Strtoull () फ़ंक्शन स्ट्रिंग लेता है, चरित्र के लिए एक संकेतक और एक पूर्णांक मान - आधार इसके पैरामीटर के रूप में, स्ट्रिंग की सामग्री को दिए गए आधार की एक अभिन्न संख्या के रूप में व्याख्या करता है और एक अहस्ताक्षरित लंबे लंबे अंतर मान देता है।

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

strtoull () पैरामीटर

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

strtoull () वापसी मान

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

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

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

 #include #include #include using namespace std; int main() ( int base = 10; char numberString() = "231ax12"; char *end; unsigned long long int number; number = strtoull(numberString, &end, base); cout << "String value = " << numberString << endl; cout << "Unsigned Long long int value = " << number << endl; cout << "End String = " << end << endl; strcpy(numberString, "231"); cout << "String value = " << numberString << endl; number = strtoull(numberString, &end, base); cout << "Unsigned Long long int value = " << number << endl; if (*end) ( cout << end; ) else ( cout << "Null pointer"; ) return 0; )

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

 स्ट्रिंग मान = 231ax12 अनसाइन्टेड लॉन्ग लॉन्ग इन्ट वेल्यू = 231 एंड स्ट्रिंग

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

  • एक वैकल्पिक + या - संकेत।
  • अष्टक आधार के लिए एक उपसर्ग 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: strtoull () विभिन्न आधारों के साथ कार्य करता है

 #include #include using namespace std; int main() ( char *end; cout << "148ax" << " to Unsigned Long Long Int with base-5 = " << strtoll("148ax", &end, 5) << endl; cout << "End String = " << end << endl << endl; cout << "148ax" << " to Unsigned Long Long Int with base-15 = " << strtoll("148ax", &end, 15) << endl; cout << "End String = " << end << endl << endl; cout << "148ax" << " to Unsigned Long Long Int with base-35 = " << strtoll("148ax", &end, 35) << endl; cout << "End String = " << end << endl << endl; return 0; )

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

 आधार -५ = ९ एंड स्ट्रींग = Long१.६० के साथ अनसाइन्टेड लॉन्ग लॉन्ग इन के लिए १४० अक्ष से बेस -१५ = ४४०५ के साथ अनसोल्ड लॉन्ग लॉन्ग में to४० मैक्स

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

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

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

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

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

 #include #include using namespace std; int main() ( char *end; cout << " 25axbz" << " to Unsigned Long Long Int with base-11 = " << strtoull(" 25axbz", &end, 11) << endl; cout << "End String = " << end << endl << endl; /* Negative value is converted to unsigned long long int type */ cout << " -110bcd" << " to Unsigned Long Long Int with base-2 = " << strtoull(" -110bcd", &end, 2) << endl; cout << "End String = " << end << endl << endl; cout << "ax110.97" << " to Unsigned Long Long Int with base-10 = " << strtoull("ax110.97", &end, 10) << endl; cout << "End String = " << end << endl << endl; return 0; )

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

 25axbz बेस -11 = 307 एंड स्ट्रिंग के साथ अनसाइन्टेड लॉन्ग लॉन्ग इन करें। बेस -2 के साथ अनसाइन्टेड लॉन्ग लॉन्ग इंट को बेस -2 = 18446744073709551610 एंड स्ट्रिंग = एलसीडी ax110.97 के साथ अनसाइन्टेड लॉन्ग लॉन्ग इन को बेस -10 = 0 एंड स्ट्रिंग = ax110.97

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

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

 #include #include using namespace std; int main() ( char *end; /* octal base */ cout << "017x" << " to Unsigned Long Long Int with base-0 = " << strtoull("017x", &end, 0) << endl; cout << "End String = " << end << endl << endl; /* hexadecimal base */ cout << "0x1cg" << " to Unsigned Long Long Int with base-0 = " << strtoull("0x1cg", &end, 0) << endl; cout << "End String = " << end << endl << endl; /* decimal base */ cout << "70sxz" << " to Unsigned Long Long Int with base-0 = " << strtoull("70sxz", &end, 0) << endl; cout << "End String = " << end << endl << endl; return 0; )

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

 017x बेस-0 = 15 एंड स्ट्रींग = x 0x1cg के साथ अनसाइन्टेड लॉन्ग लॉन्ग इंट को बेस-0 = 28 एंड स्ट्रींग = जी 70sxz के साथ अनसाइन्टेड लॉन्ग लॉन्ग इंट को बेस -० = 70 एंड स्ट्रिंग = sxz

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