कैसे इस कोड को<string> और <string.h> के बीच अंतर?
std::map <std::string , int> m;
m["a"]=1;
(मैं MSVC 2010 का उपयोग कर रहा हूँ)
#include <string>
लेकिन
#include <string.h>
साथ नहीं के साथ संकलित आते हैं?
कैसे इस कोड को<string> और <string.h> के बीच अंतर?
std::map <std::string , int> m;
m["a"]=1;
(मैं MSVC 2010 का उपयोग कर रहा हूँ)
#include <string>
लेकिन
#include <string.h>
साथ नहीं के साथ संकलित आते हैं?
<string.h>
strcpy
, strlen
सी शैली अशक्त-समाप्त तार के लिए जैसे पुराने कार्यों में शामिल है।<string>
मुख्य रूप से std::string
, std::wstring
और अन्य कक्षाएं शामिल हैं।string.h
सी की हेडर फ़ाइल है जबकि string
सी ++ की हेडर फ़ाइल है।
''
नहीं!
<string.h>
cstring है - http://www.cplusplus.com/reference/clibrary/cstring/
<string>
C++ स्ट्रिंग वर्ग है - http://www.cplusplus.com/reference/string/
प्रति नीचे निकोल Bolas टिप्पणी संपादित करें और googling के एक बिट:
<cstring>
आमतौर पर <string.h>
रूप में एक ही बातें आयात करेगा लेकिन std
नामस्थान में। <string.h>
आमतौर पर सब कुछ वैश्विक नामस्थान में आयात करेगा। ऐसा लगता है कि आप मेरे गुगलिंग के अनुसार लाइब्रेरी कार्यान्वयन पर निर्भर हैं।
व्यक्तिगत रूप से मैं केवल <cstring>
का उपयोग करता हूं यदि मुझे सी स्टाइल स्ट्रिंग हेल्पर्स की आवश्यकता है।
'
सी शैली का उपयोग 'एच' हेडर को सी ++ में बहिष्कृत किया गया है। –
@PrasoonSaurav को बहिष्कृत करने के लिए इसे शुरू करने के लिए मानक का हिस्सा होना होगा, जो कभी नहीं था। –
<string.h>
में सी-लाइब्रेरी स्ट्रिंग फ़ंक्शन शामिल हैं। strlen
, strcmp
, आदि
<string>
std::basic_string
के लिए परिभाषा है, जो typedefs std::string
और std::wstring
है शामिल हैं। यह अंतर है।
वास्तव में उनके पास कोई संबंध नहीं है, इस तथ्य के बाहर कि वे दोनों तारों से निपटते हैं।
मेरा मानना है कि <string.h>
बस और <string>
सी के लिए C++ के लिए प्रयोग किया जाता है। तो string.h
काम नहीं करेगा।
के रूप में कहा गया है, string.h
और cstring
सी हेडर कर रहे हैं, (जबकि cstring
मूल रूप से एक सी ++ string.h
के लिए आवरण है) जो char[]
'\0'
द्वारा समाप्त कर रहे हैं सी तार के लिए काम करता है, से युक्त। आप सी ++ वर्ग स्ट्रिंग का उपयोग करना चाहते हैं, जो हेडर <string>
है।
वे पूरी तरह से अलग शीर्षलेख हैं।
<string>
सी ++ string
वर्ग
<string.h> or <cstring>
कार्यों को परिभाषित करता है सी तार और सरणियों
यह भी ध्यान दिया जाना चाहिए कि 'string.h' का उपयोग करके C++ में बहिष्कृत किया गया है। यदि आपको भीतर की कार्यक्षमता की आवश्यकता है, तो आपको हेडर 'cstring' का उपयोग करना चाहिए। यह कम या ज्यादा "इन दोनों के बीच क्या अंतर है" के मुद्दे को पूरी तरह से छोड़ देता है क्योंकि यह बहुत स्पष्ट है कि कोई सी पुस्तकालय से है। –