C लाइब्रेरी फ़ंक्शन char *strncpy(char *dest, const char *src, size_t n) src . द्वारा इंगित की गई स्ट्रिंग से n वर्णों तक कॉपी करता है करने के लिए गंतव्य . ऐसे मामले में जहां, src की लंबाई n से कम है, शेष भाग को शून्य बाइट्स के साथ गद्देदार किया जाएगा।
वर्णों की एक सरणी को स्ट्रिंग कहा जाता है।
घोषणा
एक सरणी के लिए घोषणा निम्नलिखित है -
char stringname [size];
उदाहरण के लिए - चार स्ट्रिंग [50]; लंबाई 50 वर्णों की स्ट्रिंग
आरंभीकरण
- एकल वर्ण स्थिरांक का उपयोग करना -
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
- स्ट्रिंग स्थिरांक का उपयोग करना -
char string[10] = "Hello":;
एक्सेस करना - एक नियंत्रण स्ट्रिंग "%s" है जिसका उपयोग स्ट्रिंग को तब तक एक्सेस करने के लिए किया जाता है जब तक कि उसका सामना '\0' से नहीं हो जाता।
strncpy() फ़ंक्शन
-
इस फ़ंक्शन का उपयोग स्रोत स्ट्रिंग के 'n' वर्णों को गंतव्य स्ट्रिंग में कॉपी करने के लिए किया जाता है।
-
गंतव्य स्ट्रिंग की लंबाई स्रोत स्ट्रिंग से अधिक या उसके बराबर होती है।
वाक्य रचना इस प्रकार है -
strncpy (Destination string, Source String, n);
उदाहरण कार्यक्रम
strncpy() फ़ंक्शन के लिए सी प्रोग्राम निम्नलिखित है -
#include<string.h> main ( ){ char a[50], b[50]; printf ("enter a string"); gets (a); strncpy (b,a,3); b[3] = '\0'; printf ("copied string = %s",b); getch ( ); }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Enter a string : Hello Copied string = Hel
इसका उपयोग सबस्ट्रिंग निकालने के लिए भी किया जाता है।
उदाहरण 1
निम्न उदाहरण strncpy() फ़ंक्शन के उपयोग को दर्शाता है।
char result[10], s1[15] = "Jan 10 2010"; strncpy (result, &s1[4], 2); result[2] = ‘\0’
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Result = 10
उदाहरण 2
आइए strncpy पर एक और उदाहरण देखें।
strncpy लाइब्रेरी फ़ंक्शन का उपयोग करके स्रोत स्ट्रिंग से गंतव्य स्ट्रिंग तक वर्णों की संख्या को कॉपी करने के लिए नीचे एक C प्रोग्राम दिया गया है -
#include<stdio.h> #include<string.h> void main(){ //Declaring source and destination strings// char source[45],destination[50]; char destination1[10],destination2[10],destination3[10],destination4[10]; //Reading source string and destination string from user// printf("Enter the source string :"); gets(source); //Extracting the new destination string using strncpy// strncpy(destination1,source,2); printf("The first destination value is : "); destination1[2]='\0';//Garbage value is being printed in the o/p because always assign null value before printing O/p// puts(destination1); strncpy(destination2,&source[8],1); printf("The second destination value is : "); destination2[1]='\0'; puts(destination2); strncpy(destination3,&source[12],1); printf("The third destination value is : "); destination3[1]='\0'; puts(destination3); //Concatenate all the above results// strcat(destination1,destination2); strcat(destination1,destination3); printf("The modified destination string :"); printf("%s3",destination1);//Is there a logical way to concatenate numbers to the destination string?// }
आउटपुट
जब उपरोक्त प्रोग्राम को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Enter the source string :Tutorials Point The first destination value is : Tu The second destination value is : s The third destination value is : i The modified destination string :Tusi3