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

स्ट्रिंग लिटरल्स के साथ स्ट्रिंग कॉन्सटेनेशन + का उपयोग विफल क्यों हुआ?

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

Why Did String Concatenation Using   Fail with String Literals?

स्ट्रिंग अक्षर को स्ट्रिंग्स के साथ जोड़ना

सी में, ऑपरेटर का उपयोग स्ट्रिंग्स और स्ट्रिंग अक्षर को जोड़ने के लिए किया जा सकता है। हालाँकि, इस कार्यक्षमता की सीमाएँ हैं जो भ्रम पैदा कर सकती हैं।

प्रश्न में, लेखक स्ट्रिंग अक्षर "हैलो", ",वर्ल्ड" और "!" को जोड़ने का प्रयास करता है। दो अलग-अलग तरीकों से. पहला उदाहरण:

const string hello = "Hello";
const string message = hello   ",world"   "!";

इस स्थिति में, कोड संकलित होता है और सफलतापूर्वक चलता है। ऐसा इसलिए है क्योंकि ऑपरेटर के लिए पहला ऑपरेंड एक स्ट्रिंग ऑब्जेक्ट (हैलो) है, इसलिए कंपाइलर इसे एक स्ट्रिंग और दो स्ट्रिंग अक्षर के संयोजन के रूप में मानता है।

हालाँकि, दूसरा उदाहरण:

const string exclam = "!";
const string message = "Hello"   ",world"   exclam;

संकलन करने में विफल रहता है। ऐसा इसलिए है क्योंकि सबसे बाईं ओर का ऑपरेटर दो स्ट्रिंग अक्षर को जोड़ने का प्रयास कर रहा है, जिसकी अनुमति नहीं है। कंपाइलर इस कोड की व्याख्या इस प्रकार करता है:

const string message = (("Hello"   ",world")   exclam);

और पहला संयोजन दो पॉइंटर्स जोड़ने का प्रयास कर रहा है ( स्थिरांक चार * शाब्दिक) एक साथ। ]

const string message = string("Hello") ",world" exclam;

  • दूसरे को पहले मूल्यांकन करने के लिए मजबूर करने के लिए कोष्ठक का उपयोग करें:

    const string message = string("Hello")   ",world"   exclam;
  • आप दो स्ट्रिंग अक्षर का उपयोग करके उन्हें संयोजित नहीं कर सकते इसका कारण यह है कि स्ट्रिंग अक्षर को इस प्रकार संग्रहीत किया जाता है वर्णों की सारणी, जिन्हें सीधे एक साथ नहीं जोड़ा जा सकता। जब आप अधिकांश संदर्भों में एक स्ट्रिंग शाब्दिक का उपयोग करते हैं, तो यह इसके प्रारंभिक तत्व के लिए एक सूचक में परिवर्तित हो जाता है, जो ऑपरेटर के लिए वैध ऑपरेंड नहीं है।

    const string message = "Hello"   (",world"   exclam);
  • "Hello" ",world" "हैलो वर्ल्ड"
विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729729822 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3