कैसे चेक करना है कि अगर सिनेमा खाली है


जवाब 1:

एक खाली स्ट्रिंग के लिए, आपको जो चाहिए वह है

अशक्त चरित्र

, या '\ 0' (शून्य, वर्णमाला 'O') नहीं। यह एक विशेष आरक्षित वर्ण है जो एक स्ट्रिंग के अंत का प्रतीक है।

एक स्ट्रिंग की तरह "हैलो" वास्तव में "हैलो" 0 के रूप में संग्रहीत है। यह इंगित करता है कि स्ट्रिंग कहाँ समाप्त होती है।

इसलिए खाली तार (इनिशियलाइज्ड) "\ _" के रूप में दिया जाएगा। चूंकि टर्मिनल के माध्यम से वास्तव में "\ _" दर्ज होता है, इसलिए एक स्ट्रिंग बनेगी

str [0] = '\' str [1] = '0'

आपको इसे अशक्त चरित्र के रूप में बनाने के लिए एक और तरीका चाहिए।

इस प्रकार इसे टाइप करने की क्षमता (अनियंत्रित उपयोगकर्ता इनपुट के मामले में) एक अशक्तता पैदा करती है जिसे अशक्त बाइट इंजेक्शन के रूप में जाना जाता है और सुरक्षा कारनामे पैदा कर सकता है।

स्रोत: विकिपीडिया

अशक्त चरित्र

कुछ कीबोर्ड में वह सुविधा होती है (ctrl + @), कुछ नहीं।

यदि नहीं, तो आपको "nullstr" जैसे इनपुट के लिए अपना स्वयं का कीवर्ड बनाना होगा, फिर जांचें कि क्या आपका इनपुट समान है, और फिर अपने कोड के माध्यम से स्ट्रिंग को '\ 0' में बदलें।

अपडेट: भूल गए कि हम C ++ में थे। हाँ, जैसा कि आलोक मिश्रा और शिवशंकर शेजवाल ने बताया, गेटलाइन काम करेगी। C ++ में \ 0 डालने से स्ट्रिंग में केवल "एलो" के रूप में "एल्लो" छपा होगा, क्योंकि स्ट्रिंग की लंबाई भी संग्रहीत है।


जवाब 2:

गेटलाइन के बारे में सुना है?

इस लिंक को चेकआउट करें

getline (string) - C ++ Reference

आप प्रत्येक इनपुट चरित्र को पढ़ने, स्ट्रिंग बनाने और उसे वापस करने के लिए गेटचार का उपयोग करके अपना स्वयं का फ़ंक्शन भी लिख सकते हैं। अगर उपयोगकर्ता सीधे 'एन्टर' इनपुट करता है तो यह फ़ंक्शन एक खाली स्ट्रिंग लौटाएगा।


जवाब 3:
#शामिल #शामिल नेमस्पेस एसटीडी का उपयोग करना;मुख्य प्रवेश बिंदु(){ स्ट्रिंग एस; getline (CIN, एस); अदालत < वापसी 0;}