c - gets() function string behaviour -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 6 उत्तर

मेरे पास एक छोटी सी समस्या है कार्य हो जाता है और सरल अगर अभिव्यक्ति हो यह जांचना है कि इनपुट सही है या नहीं, इस मामले में यह होना चाहिए:! एस

  चार चेककॉम [5]; हो जाता है (checkCommand); अगर (checkCommand == "! एस") ....; और डालता है ("अमान्य आदेश!");  

कैसे मैं अभिव्यक्ति के लिए सही मूल्य प्राप्त करने के लिए कभी नहीं समाप्त होता है, भले ही मैं टाइप करता हूं! एस? सभी उत्तरों के लिए धन्यवाद!

क्योंकि आप इस तरह से सी में तार की तुलना नहीं करते हैं: (checkCommand == "! एस")

स्ट्रिंग की तुलना करने के लिए, आपको strcmp या strncmp या memcmp

यदि (strncmp (चेक कॉमांड, "! एस", 5) == 0)

इन फ़ंक्शंस के बारे में अधिक जानने के लिए, विज़िट करें और समान।

आपको एक चेतावनी भी होनी चाहिए " हो खतरनाक है ..." कुछ इस तरह। आपको हो जाता है का उपयोग करने से बचने और इसके बजाय fgets का उपयोग करना चाहिए। क्रिस जेस्टर-यंग अपने जवाब में इसका कारण समझाया गया है।


Comments

Popular posts from this blog

python - Writing Greek in matplotlib labels, titles -

c# - LINQ to Entities does not recognize the method 'Int32 IndexOf(System.String, System.StringComparison)' method -

Pygame memory leak with transform.flip -