Computer >> Máy Tính >  >> Lập trình >> lập trình C

Hàm strncpy () trong ngôn ngữ C là gì?

Hàm thư viện C char * strncpy (char * dest, const char * src, size_t n) sao chép tối đa n ký tự từ chuỗi được trỏ tới, bởi src đến đích . Trong trường hợp độ dài của src nhỏ hơn n, phần còn lại của đích sẽ được đệm bằng byte null.

Một mảng các ký tự được gọi là một chuỗi.

Tuyên bố

Sau đây là khai báo cho một mảng -

char stringname [size];

Ví dụ - chuỗi ký tự char [50]; chuỗi dài 50 ký tự

Khởi tạo

  • Sử dụng hằng số ký tự -
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • Sử dụng hằng số chuỗi -
char string[10] = "Hello":;

Truy cập - Có một chuỗi điều khiển "% s" được sử dụng để truy cập vào chuỗi cho đến khi nó gặp ‘\ 0’.

Hàm strncpy ()

  • Hàm này được sử dụng để sao chép ký tự ‘n’ của chuỗi nguồn thành chuỗi đích.

  • Độ dài của chuỗi đích lớn hơn hoặc bằng chuỗi nguồn.

Cú pháp như sau -

strncpy (Destination string, Source String, n);

Chương trình mẫu

Sau đây là chương trình C cho hàm 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 ( );
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Enter a string : Hello
Copied string = Hel

Hàm strncpy () trong ngôn ngữ C là gì?

Nó cũng được sử dụng để trích xuất các chuỗi con.

Ví dụ 1

Ví dụ sau đây cho thấy cách sử dụng hàm strncpy ().

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

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

Result = 10

Hàm strncpy () trong ngôn ngữ C là gì?

Ví dụ 2

Hãy xem một ví dụ khác trên strncpy.

Dưới đây là một chương trình C để sao chép n số ký tự từ chuỗi nguồn sang chuỗi đích bằng cách sử dụng hàm thư việ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?//
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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