सी स्ट्रिंग्स और सी ++ तारों के बीच क्या अंतर है। विशेष रूप से गतिशील स्मृति आवंटन कर रही है, जबकिसी तारों और सी ++ तारों के बीच क्या अंतर है?
उत्तर
मैं शायद ही पता है, जहां शुरू करने के लिए :-)
सी में, तार सिर्फ char
सरणियों जो, प्रथा के अनुसार, एक NUL बाइट के साथ अंत नहीं है। गतिशील स्मृति प्रबंधन के संदर्भ में, आप केवल malloc
उनके लिए जगह (अतिरिक्त बाइट सहित) कर सकते हैं। मेमोरी मैनेजमेंट जब तार को संशोधित करने है अपने जिम्मेदारी:
char *s = strdup ("Hello");
char *s2 = malloc (strlen (s) + 6);
strcpy (s2, s);
strcat (s2, ", Pax");
free (s);
s = s2;
सी ++ में, तार (std::string
) सभी संबद्ध स्वचालित स्मृति प्रबंधन और नियंत्रण है जो उन्हें एक बहुत सुरक्षित और आसान उपयोग करने के लिए बनाता है के साथ वस्तुओं, खासकर के लिए कर रहे हैं नौसिखिया।
std::string s = "Hello";
s += ", Pax";
मैं जानता हूँ कि जो मैं चाहते उपयोग करने के लिए, बाद पसंद करते हैं: गतिशील आवंटन के लिए, की तरह कुछ का उपयोग करें। c_str()
विधि का उपयोग करके आप std::string
से हमेशा एक सी स्ट्रिंग बना सकते हैं (यदि आपको आवश्यकता है)।
'std :: string' ऑब्जेक्ट्स हैं ... – dmckee
अरे आप c_str()! –
सी ++ तार ज्यादा, सुरक्षित आसान हैं, और वे संलग्न, लगता है, कॉपी, संयोजन आदि की तरह अलग अलग स्ट्रिंग परिवर्तन कार्य का समर्थन
स्ट्रिंग ++ सी स्ट्रिंग और ग के बीच एक दिलचस्प अंतर उदाहरण निम्नलिखित
के माध्यम से दर्शाया गया है#include <iostream>
using namespace std;
int main() {
char a[6]; //c string
a[5]='y';
a[3]='o';
a[2]='b';
cout<<a;
return 0;
}
उत्पादन »¿boRy¤ £ च · पाई» ¿
#include <iostream>
using namespace std;
int main()
{
string a; //c++ string
a.resize(6);
a[5]='y';
a[3]='o';
a[2]='b';
cout<<a;
return 0;
}
आउटपुट लड़का
मुझे आशा है कि आपको बिंदु मिल जाएगा !!
सी से इस प्रकार का व्यवहार हार्टबलेड जैसी बग का कारण बनता है। – saolof
- 1. ओरेकल नल और खाली तारों के बीच अंतर नहीं है?
- 2. दो तारों के बीच अंतर कैसे प्राप्त करें?
- 3. तारों और सरणी की तुलना सी #
- 4. सी - संख्यात्मक तारों की तुलना
- 5. सी और एम्बेडेड सी के बीच क्या अंतर है?
- 6. प्रबंधित सी ++ और सी # के बीच क्या अंतर है?
- 7. विज़ुअल सी ++ और सी ++ के बीच क्या अंतर है?
- 8. सी ++ और विजुअल सी ++ के बीच क्या अंतर है?
- 9. सी ++ तारों के लिए धीमी कार्यक्षमता
- 10. तारों EventHandlers
- 11. सी, और सी ++ कॉलिंग सम्मेलनों के बीच अंतर क्या हैं?
- 12. सी # तारों में घुंघराले ब्रेसिज़ का क्या अर्थ है?
- 13. अद्वितीय तारों की कुशल सूची सी #
- 14. मैक्रोज़ में तारों को जोड़ना - सी ++
- 15. तारों में सी में वैल्यू लुकअप टेबल?
- 16. सी ++ बनाम सी ++ के बीच मुख्य अंतर क्या है? नेट?
- 17. आप सी ++ में तारों को कैसे संभालेंगे?
- 18. दो तारों की तुलना करें और अंतर प्राप्त करें
- 19. दो तारों के बीच रेगेक्स मिलान?
- 20. लाखों तारों
- 21. दो तारों के बीच सभी सबस्ट्रिंग्स खोजें
- 22. जावास्क्रिप्ट तारों की तुलना करें और अंत अंतर प्राप्त करें
- 23. उद्देश्य-सी: केई और केपपथ के बीच क्या अंतर है?
- 24. सी प्रोग्रामिंग में * और ऑपरेटरों के बीच क्या अंतर है?
- 25. सी #, .NET और सीएलआई के बीच क्या अंतर है?
- 26. वीबी और सी # में घटनाओं के बीच क्या अंतर है?
- 27. सी में क्वालीफायर और संशोधक के बीच क्या अंतर है?
- 28. सी # में सीएलआर और डीएलआर के बीच क्या अंतर है?
- 29. सी # में कॉन्स और स्टेटिक के बीच क्या अंतर है?
- 30. "वीसी ++" और "सी ++" के बीच क्या अंतर है?
क्या आपका मतलब है कि दो भाषाओं में 'char *' और 'char []' तारों का उपयोग करने के बीच अंतर, या 'char' आधारित तारों और 'std :: string' के बीच का अंतर? – dmckee
कृपया "सी स्ट्रिंग" और "सी ++ स्ट्रिंग" से आपका क्या मतलब है परिभाषित करें। दोनों (विशेष रूप से उत्तरार्द्ध) संदिग्ध हैं। – strager
पढ़ें http://www.cplusplus.com/reference/string/string/ और http://www.macdonald.egate.net/CompSci/hstrings.html –