पर रोकना, मैं एक फ़ाइल में संरचना से तार पढ़ रहा हूं जहां प्रत्येक स्ट्रिंग की निश्चित लंबाई है, '\0'
पैडिंग के साथ। यदि संग्रहित स्ट्रिंग को पूरी लंबाई की आवश्यकता होती है तो वे शून्य-समाप्त नहीं होते हैं।एक्स वर्णों से std :: स्ट्रिंग का निर्माण, शून्य char
// char MyString[1000];
std::string stdmystring(MyString, ARRAYSIZE(MyString));
बहरहाल, यह प्रतियां गद्दी, भी:
मैं वर्तमान में इस तरह उन से बाहर std::string
रों निर्माण कर रहा हूँ। मैं अब स्ट्रिंग को ट्रिम कर सकता हूं, लेकिन क्या पहली जगह कॉपी करने से रोकने के लिए एक सुरुचिपूर्ण और त्वरित तरीका है?
गति अंतरिक्ष से अधिक महत्वपूर्ण है, क्योंकि यह एक पाश में चलता है।
आप आकार निर्धारित करने के लिए POSIX strnlen का उपयोग कर सकते हैं। (आपको ऐसा कुछ करना चाहिए, अन्यथा स्ट्रिंग :: आकार() हमेशा सरणी आकार होता है) –
सच है, निश्चित रूप से एक अनुकूलन। मैं इसका उपयोग करूंगा यदि कोई भी आकार निर्धारित करने के लिए दूसरे लूप के बिना ऐसा कैसे करता है (जो मैंने सोचा था ...)। –