Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ฟังก์ชัน strncpy () ในภาษา C คืออะไร


ฟังก์ชันไลบรารี C char *strncpy(char *dest, const char *src, size_t n) คัดลอกอักขระสูงสุด n ตัวจากสตริงที่ชี้ไปที่ โดย src ไปยัง ปลายทาง . ในกรณีที่ความยาวของ src น้อยกว่า n ส่วนที่เหลือของปลายทางจะถูกบุด้วย null ไบต์

อาร์เรย์ของอักขระเรียกว่าสตริง

ประกาศ

ต่อไปนี้เป็นการประกาศอาร์เรย์ -

char stringname [size];

ตัวอย่างเช่น − char string[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);

ตัวอย่างโปรแกรม

ต่อไปนี้เป็นโปรแกรม C สำหรับฟังก์ชัน 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

ฟังก์ชัน strncpy () ในภาษา C คืออะไร

นอกจากนี้ยังใช้สำหรับแยกสตริงย่อยด้วย

ตัวอย่างที่ 1

ตัวอย่างต่อไปนี้แสดงการใช้ฟังก์ชัน strncpy()

char result[10], s1[15] = "Jan 10 2010";
strncpy (result, &s1[4], 2);
result[2] = ‘\0’

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

Result = 10

ฟังก์ชัน strncpy () ในภาษา C คืออะไร

ตัวอย่างที่ 2

มาดูตัวอย่างอื่นใน strncpy

รับด้านล่างเป็นโปรแกรม C เพื่อคัดลอก n จำนวนอักขระจากสตริงต้นทางไปยังสตริงปลายทางโดยใช้ฟังก์ชันไลบรารี strncpy -

#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