c - gets() function string behaviour -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 6 उत्तर
मेरे पास एक छोटी सी समस्या है कार्य हो जाता है और सरल अगर अभिव्यक्ति हो यह जांचना है कि इनपुट सही है या नहीं, इस मामले में यह होना चाहिए:! एस
चार चेककॉम [5]; हो जाता है (checkCommand); अगर (checkCommand == "! एस") ....; और डालता है ("अमान्य आदेश!");
कैसे मैं अभिव्यक्ति के लिए सही मूल्य प्राप्त करने के लिए कभी नहीं समाप्त होता है, भले ही मैं टाइप करता हूं! एस? सभी उत्तरों के लिए धन्यवाद!
क्योंकि आप इस तरह से सी में तार की तुलना नहीं करते हैं: (checkCommand == "! एस")
स्ट्रिंग की तुलना करने के लिए, आपको इन फ़ंक्शंस के बारे में अधिक जानने के लिए, विज़िट करें और समान। आपको एक चेतावनी भी होनी चाहिए " strcmp
या strncmp
या memcmp
यदि (strncmp (चेक कॉमांड, "! एस", 5) == 0)
हो खतरनाक है ..." कुछ इस तरह। आपको
हो जाता है
का उपयोग करने से बचने और इसके बजाय fgets
का उपयोग करना चाहिए। क्रिस जेस्टर-यंग अपने जवाब में इसका कारण समझाया गया है।
Comments
Post a Comment