मैं कुछ वर्णों को संख्यात्मक प्रकार में बदलने की कोशिश कर रहा हूं, लेकिन उनमें से कुछ शून्य-समाप्त तार नहीं हो सकते हैं। तो स्ट्रिंग, स्ट्रेटोल, स्ट्रिंग्स उन स्ट्रिंग्स के लिए सुरक्षित हैं जो शून्य-समाप्त नहीं हैं?स्ट्रेटोल, स्ट्रेटोल, किसी भी वर्ण के लिए स्ट्रेट सुरक्षित है, यहां तक कि शून्य समाप्त नहीं हुआ है?
उत्तर
सं
एक चरित्र सरणी एक अशक्त चरित्र द्वारा समाप्त नहीं है, तो यह नहीं एक स्ट्रिंग है। यदि strto*()
फ़ंक्शंस में से कोई एक तर्क पारित किया गया है जो स्ट्रिंग को इंगित नहीं करता है, तो व्यवहार अपरिभाषित है।
2011 आईएसओ सी मानक के latest draft का जिक्र करते हुए:
7.1.1 पदों की परिभाषा:
एक स्ट्रिंग द्वारा समाप्त पात्रों में से एक सन्निहित अनुक्रम है और पहली अशक्त सहित चरित्र।
7.1.4 पुस्तकालय कार्यों का उपयोग:
एक समारोह के लिए एक तर्क के इस तरह के समारोह के डोमेन के बाहर एक मूल्य , या पता बाहर सूचक के रूप में एक अमान्य मान (है कार्यक्रम की जगह, या एक शून्य सूचक, या पर एक सूचक, गैर-संशोधित संग्रहण जब संबंधित पैरामीटर कॉन्स्ट-क्वालिफाइड नहीं है) या द्वारा तर्क की चर संख्या के साथ फ़ंक्शन की अपेक्षा नहीं है (प्रचार के बाद) व्यवहार अपरिभाषित है।
7.22.1.3 strtod, strtof, और strtold कार्य:
strtod, strtof, और strtold कार्यों प्रारंभिक भाग स्ट्रिंग की परिवर्तितnptr से डबल, फ्लोट, और क्रमशः लंबे डबल प्रतिनिधित्व।
(जोर जोड़ा)
तो एक तर्क है कि एक स्ट्रिंग को इंगित नहीं करता समारोह के डोमेन के बाहर है।
यदि सरणी में { '1', '2', '3', 'x', 'y', 'z' }
जैसे कुछ शामिल हैं, तो आपको इससे दूर होने की संभावना है, क्योंकि x
से पहले स्कैन करने की आवश्यकता नहीं है जो वांछित मान को समाप्त करता है, लेकिन व्यवहार स्पष्ट रूप से अपरिभाषित है।
यदि आप इन कार्यों का उपयोग करना चाहते हैं, तो आपको, यदि आवश्यक हो, तो अपने सरणी को किसी अन्य बफर में कॉपी करें और स्पष्ट रूप से इसे स्वयं को समाप्त कर दें।
जब तक आपका इनपुट किसी भी तरह समाप्त नहीं होता है, जो निश्चित रूप से एक वैध अंक चरित्र नहीं है, प्रसंस्करण बंद हो जाएगा और जब तक यह पहला एनयूएल नहीं मिल जाता तब तक खुशी से स्मृति को नहीं पढ़ना चाहिए।
तो मुझे लगता है कि आप ठीक हैं।
- 1. स्ट्रेटोल, एट अल
- 2. स्ट्रेटोल हैं, स्ट्रैट असुरक्षित हैं?
- 3. क्या कोई स्ट्रैट समकक्ष है जिसके लिए शून्य-समाप्त स्ट्रिंग की आवश्यकता नहीं है?
- 4. यहां तक कि एक सूची भी?
- 5. विजुअल स्टूडियो 2010 स्टार्टअप पर क्रैश हो जाता है, यहां तक कि सुरक्षित मोड में भी
- 6. बैकबोन.sync को कुछ भी नहीं के साथ कैसे बदलें, यहां तक कि स्थानीय स्टोरेज भी नहीं?
- 7. मजबूत पासवर्ड नियमित अभिव्यक्ति है कि किसी भी विशेष वर्ण
- 8. स्ट्रेटोल() और एटोल() 9 अंकों से बड़े स्ट्रिंग्स को परिवर्तित नहीं करते हैं
- 9. एंड्रॉइड स्क्रॉलव्यू समाप्त हुआ है?
- 10. कन्स्ट्रक्टर्स में इवेंट हैंडलर - क्या यह संभव है या यहां तक कि बुद्धिमान भी है?
- 11. QThread समाप्त हुआ() QObject
- 12. क्या एक्सकोड के लिए यह सामान्य नहीं है कि प्री-एक्शन विफल हुआ है या नहीं?
- 13. jQuery क्लोन() ईवेंट बाइंडिंग क्लोनिंग नहीं, यहां तक कि()
- 14. तरल टेम्पलेट्स: यहां तक कि/पाश
- 15. मॉकिंग क्लासेस जिनमें इंटरफ़ेस नहीं है और यहां तक कि कोई वर्चुअल विधियां नहीं हैं
- 16. चयन पंक्तियों किसी भी विदेशी कुंजी की जरूरत नहीं है कि जुड़ा हुआ
- 17. यहां पंद्रह वर्ण हैं
- 18. Regex किसी भी ASCII वर्ण
- 19. स्ट्रेट सत्यापन क्यों मेरे लिए काम नहीं कर रहा है?
- 20. टेबल हेडर के लिए सीएसएस, यहां तक कि विषम पंक्तियां भी?
- 21. यहां तक कि अगर DropDownList अपने viestate विकलांग है, SelectedValue अभी भी एक मूल्य
- 22. बी-ट्री - यहां तक कि चाबियों की संख्या के साथ नोड क्यों नहीं हो सकता है?
- 23. jQuery: यहां तक कि स्तंभों को भी हाइलाइट करें (पंक्तियां नहीं)
- 24. जांचें कि कोई कॉलम शून्य नहीं है
- 25. स्प्रिंग सुरक्षा के प्रमाणीकरण को पुनर्प्राप्त करें, यहां तक कि फ़िल्टर के साथ सार्वजनिक पृष्ठों पर भी "कोई नहीं"
- 26. चींटी स्कैप कार्य काम नहीं कर रहा है, यहां तक कि एंटी/lib
- 27. आईओएस, एंड्रॉइड (और यहां तक कि विंडोज फोन) लिखने के लिए कोई एकल ढांचा है?
- 28. केवल लंबाई के लिए नियमित अभिव्यक्ति - किसी भी वर्ण
- 29. केकपीएचपी: खोजें कि फ़ील्ड शून्य नहीं है
- 30. ओएसएक्स दस्तावेज़ atoi/atof क्यों थ्रेडसेफ नहीं है?
तो, उदाहरण के लिए, कनवर्ट किए गए नंबर के बाद स्कैन को रोकने के बाद एक रिक्त या विराम चिह्न (या उस अक्षर में उस अक्षर को शामिल नहीं किया जाता है)। –
@ जोनाथन लेफ्लर: प्रमुख रिक्त स्थान, दशमलव बिंदु, कुछ भी जो वैध इनपुट हो सकता है, हां। –
क्या यह सीजी-गलती त्रुटि को ट्रिगर नहीं करेगा? –