strcpy(3)
(और strncpy(3)
) क्यों अपना पहला तर्क देता है? मैं नहीं देखता कि यह कैसे कोई मूल्य जोड़ता है। इसके बजाए, अक्सर मैं प्रतिलिपि बनाई गई बाइट्स की संख्या लेता हूं।सी: स्ट्रैपी क्यों अपना तर्क वापस कर देता है?
परिशिष्ट: मुझे परिणामस्वरूप स्ट्रिंग की लंबाई की आवश्यकता होने पर मुझे क्या करना चाहिए? क्या मुझे वास्तव में अपना खुद का संस्करण लागू करना है?
ताकि यह फ़ंक्शन चेनिंग में उपयोग किया जा सके। –
स्ट्रिंग के अंत में 'strcpy()' के एक प्रकार को '' '0' बाइट में एक सूचक वापस लौटाया गया तो यह और अधिक उपयोगी होगा। हालांकि, अगर आप अपनी प्रतिलिपि बनाने के पहले सबकुछ जांचते हैं (जैसा कि आपको सुरक्षित होना चाहिए), तो आप 'strcpy() '(या शायद' memcpy()') का उपयोग 'strcpy()' के बजाय कर सकते हैं। यह केवल तब होता है जब आपके पास लंबाई उपलब्ध नहीं होती है जो उन का उपयोग नहीं कर सकती है, लेकिन अगर आप स्रोत स्ट्रिंग और लक्ष्य बफर की लंबाई नहीं जानते हैं तो प्रतिलिपि करना सुरक्षित नहीं है। –