Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में स्ट्रिंग और चार [] प्रकारों के बीच अंतर


इस खंड में हम देखेंगे कि C++ में string और char[] में क्या अंतर हैं। चार [] मूल रूप से वर्णों की एक सरणी है। तो इस सरणी के कुछ गुण हैं। ये गुण नीचे सूचीबद्ध हैं।

  • यदि चार [] को स्टैक सेक्शन में आवंटित किया जाता है तो यह हमेशा 256 बाइट स्पेस पर कब्जा कर लेगा। यह टेक्स्ट के आकार पर निर्भर नहीं करेगा।

  • यदि हम मॉलॉक () या कॉलोक () का उपयोग गतिशील रूप से इसके लिए हीप सेक्शन में स्थान आवंटित करने के लिए करते हैं तो हम इसका उपयोग करने के बाद मेमोरी को जारी करने के लिए जिम्मेदार होते हैं, और हमारे पास हमेशा हीप आवंटन का ओवरहेड होता है।

  • यदि वर्ण सरणी का आकार 256 वर्णों से बड़ा है, तो प्रोग्राम क्रैश हो सकता है। यह हमारे कोड में बदसूरत अभिकथन संदेश उत्पन्न कर सकता है।

  • स्ट्रिंग की लंबाई प्राप्त करने के लिए हमें पूरे वर्ण सरणी को तब तक स्कैन करना होगा जब तक कि हम हर बार '\0' वर्ण तक नहीं पहुंच जाते।

दूसरी ओर, सी ++ के मानक नामस्थान में स्ट्रिंग है। यह स्ट्रिंग एक वर्ग है, और इसमें इसके अंदर वर्ण सरणी है। यह स्वचालित रूप से उपयोगकर्ता के लिए प्रबंधन करता है। ज्यादातर मामलों में स्ट्रिंग के लिए अंतर्निर्मित सरणी 16 वर्ण है। इसलिए छोटे स्ट्रिंग्स के लिए यह स्ट्रिंग को खंडित नहीं करता है, लेकिन बड़ी स्ट्रिंग के लिए यह हीप सेक्शन का उपयोग करता है।

C++ स्ट्रिंग में इनबिल्ट '\0' कैरेक्टर हैं। यह बिना गिनती के स्ट्रिंग की लंबाई को स्टोर करता है। जैसा कि छोटे पाठ के लिए ढेर नहीं होता है तो यह बफर ओवररन से बचाता है। और इसके अलावा सी++ में स्ट्रिंग्स का उपयोग करना आसान है।


  1. सी ++ में 'स्ट्रक्चर' और 'टाइपिफ़ स्ट्रक्चर' के बीच अंतर?

    C++ में, struct और typedef struct के बीच कोई अंतर नहीं है, क्योंकि C++ में, सभी struct/union/enum/class घोषणाएं इस तरह काम करती हैं जैसे वे परोक्ष रूप से typedef हैं। एड, जब तक नाम उसी नाम के साथ किसी अन्य घोषणा द्वारा छिपाया नहीं जाता है। हालांकि एक सूक्ष्म अंतर है कि टाइपपीफ को आगे घोषित नहीं किया

  1. C++ स्ट्रिंग स्थिरांक और वर्ण स्थिरांक के बीच अंतर

    C++ में, सिंगल कोट्स में एक कैरेक्टर एक कैरेक्टर लिटरल होता है। यह चार प्रकार का है। उदाहरण के लिए, ए ASCII आधारित सिस्टम पर 97 के मान के साथ चार प्रकार का है। दोहरे उद्धरण चिह्नों में एक वर्ण या वर्णों की एक स्ट्रिंग एक स्ट्रिंग अक्षर का प्रतिनिधित्व करती है। यह प्रकार का है const char[] और स्ट्रि

  1. C++ में रिलेशनल ऑपरेटर(==) और std::string::compare() के बीच अंतर

    रिलेशनल ऑपरेटर ==और std::string::compare() के बीच केवल एक अंतर है। वह वापसी मूल्य है। आंतरिक रूप से, string::operator==() string::compare() using का उपयोग कर रहा है रिलेशनल ऑपरेटर(==) एक बूलियन लौटाता है जो यह दर्शाता है कि 2 तार बराबर हैं या नहीं, जबकि तुलना एक पूर्णांक देता है जो दर्शाता है कि तार