संपादित करें: मैंने उदाहरण के लिए स्रोत जोड़ा है।आप strcpy के बजाय strncpy का उपयोग क्यों करना चाहिए?
मैं this example भर में आया था:
char source[MAX] = "123456789";
char source1[MAX] = "123456789";
char destination[MAX] = "abcdefg";
char destination1[MAX] = "abcdefg";
char *return_string;
int index = 5;
/* This is how strcpy works */
printf("destination is originally = '%s'\n", destination);
return_string = strcpy(destination, source);
printf("after strcpy, dest becomes '%s'\n\n", destination);
/* This is how strncpy works */
printf("destination1 is originally = '%s'\n", destination1);
return_string = strncpy(destination1, source1, index);
printf("After strncpy, destination1 becomes '%s'\n", destination1);
कौन इस उत्पादन का उत्पादन:
destination is originally = 'abcdefg' After strcpy, destination becomes '123456789' destination1 is originally = 'abcdefg' After strncpy, destination1 becomes '12345fg'
कौन सा मुझे आश्चर्य है कि क्यों किसी को भी इस आशय चाहेगा बनाता है। ऐसा लगता है कि यह भ्रमित हो जाएगा। यह कार्यक्रम मुझे लगता है कि आप मूल रूप से किसी के नाम (जैसे टॉम ब्रोकॉ) पर टॉम ब्रो 763 के साथ प्रतिलिपि बना सकते हैं।
strcpy()
से अधिकstrncpy()
का उपयोग कर के लाभ क्या हैं?
मुझे लगता है कि आप से पूछना करने के लिए होती "क्यों पृथ्वी पर होगा किसी को भी उपयोग' 'बजाय strncpy' की strcpy'?" –
जब मैं सी में पहले सेमेस्टर प्रोग्रामिंग कोर्स के लिए टीए था, तो मैंने अपने छात्रों को आश्वासन दिया कि 'गेटलाइन' जैसी विधियों के किसी भी उपयोग के परिणामस्वरूप गलत परिणाम होंगे जब मैंने सावधानी से तैयार किए गए इनपुट के खिलाफ उन्हें ग्रेड किया था। :) –
मुझे लगता है कि आपने गलत समझा है कि कोड वास्तव में क्या करता है। करीब से देखो। –