मैं स्रोत कोड की निम्न बहुत बहुत ही सरल टुकड़ा संकलित करने के लिए कोशिश कर रहा हूँ:जी ++ त्रुटि: 'stricmp' इस दायरे में घोषित किया गया था (लेकिन 'strcmp' के लिए ठीक)
#include <cstring>
// #include <string.h>
// using namespace std;
class Helper {
public:
int cStringsAreEqual(const char *s1, const char *s2) {
return stricmp(s1, s2);
}
};
... लेकिन मैं निम्नलिखित त्रुटि संदेश मिल रहा हूँ:
g++ error: ‘stricmp’ was not declared in this scope
हालांकि जब मैं strcmp()के बजाय stricmp() का उपयोग तो सब कुछ ठीक है!
यहां क्या गलत हो सकता है? Strcmp() की अनुमति होने पर stricmp() की अनुमति नहीं दी जानी चाहिए?
Sureley, यह सब strcmp/stricmp का उपयोग किए बिना एक बेहतर तरीके से लिखा जा सकता है।
लेकिन यह बात यहां नहीं है।
मैं सॉफ्टवेयर का एक टुकड़ा पोर्ट कर रहा हूं - जो stricmp() को कॉल का अधिक उपयोग करता है। और यदि किसी भी तरह से संभव है तो मैं हर कॉल को stricmp में बदलने के लिए आवश्यक सभी प्रयासों से बचना चाहता हूं।
इस पर किसी भी मदद की बहुत सराहना की जाएगी!
बीटीडब्लू: मैं उबंटू कर्मिक ओएस (v9.10) का उपयोग कर रहा हूं g ++ v4.4.1 के साथ।
बीटीडब्ल्यू: जैसा कि आप देख सकते हैं कि मैंने '#cludclud string.h' या 'नेमस्पेस std' के साथ कुछ परीक्षण भी किए हैं लेकिन कुछ भी मदद नहीं की है।
कि stricmp और strcmp ध्यान में रखते हुए ही नहीं हैं, तो आप उन्हें किसी भी तरह से बदलने से पहले hesistate करना चाह सकते हैं (उत्तरार्द्ध केस संवेदी है)। – Brian
मुझे पता है कि वे एक जैसे नहीं हैं। यही कारण है कि मैं stricmp का उपयोग करना चाहता हूं और strcmp –
नोट भी नोट करें कि '' और ' 'बिल्कुल कुछ नहीं हैं। यह आपकी समस्या का कारण नहीं है, लेकिन वैश्विक नामस्थान में नाम आयात किए जाने के बजाय आपको 'std :: strcmp' (या' std :: strcoll') लिखना होगा। –