"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या मानक स्ट्रिंग कार्यान्वयन में c_str() और डेटा() महत्वपूर्ण रूप से भिन्न हैं?

क्या मानक स्ट्रिंग कार्यान्वयन में c_str() और डेटा() महत्वपूर्ण रूप से भिन्न हैं?

2024-11-09 को प्रकाशित
ब्राउज़ करें:927

Do c_str() and data() in Standard String Implementations Differ Significantly?

c_str() बनाम data() मानक स्ट्रिंग कार्यान्वयन में

STL में c_str() और data() कार्यों के बीच अंतर और समान कार्यान्वयन को व्यापक रूप से शून्य समाप्ति पर आधारित माना जाता है। माना जाता है कि, c_str() हमेशा एक शून्य-समाप्त स्ट्रिंग प्रदान करता है, जबकि data() नहीं करता है। इससे दो कार्यों के बीच वास्तविक अंतर के बारे में उलझन हो सकती है।

सही उपयोग और परिदृश्य

दस्तावेज़ीकरण में स्पष्ट रूप से कहा गया है कि c_str() का उपयोग तब किया जाना चाहिए जब शून्य हो -समाप्त स्ट्रिंग की आवश्यकता है. यदि एक गैर-शून्य-समाप्त स्ट्रिंग स्वीकार्य है, तो डेटा() का उपयोग किया जा सकता है, क्योंकि यह विशिष्ट कार्यान्वयन में बेहतर प्रदर्शन प्रदान कर सकता है।

चरित्र-आधारित स्ट्रिंग्स से परे

यह ध्यान रखना महत्वपूर्ण है कि C में स्ट्रिंग्स वर्ण डेटा तक सीमित नहीं हैं। इनमें किसी भी प्रकार के तत्व शामिल हो सकते हैं। ऐसे मामलों में, डेटा() अधिक सार्थक हो जाता है क्योंकि यह सीधे अंतर्निहित डेटा तक पहुंचता है, जबकि चरित्र-आधारित स्ट्रिंग्स पर जोर देने के कारण c_str() कम प्रासंगिक है।

C 11 और परे: कन्वर्जेंस

सी 11 और मानक के बाद के संस्करणों में, डेटा() को अब शून्य-समाप्त करने की आवश्यकता है, इसके व्यवहार को c_str() के साथ संरेखित करना। यह दो कार्यों के बीच पिछले अंतर को समाप्त करता है, यह सुनिश्चित करता है कि वे एक ही ऑपरेशन करते हैं।

विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729740747 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3