Cách sử dụng hàm strncpy() trong C++

Cach Su Dung Ham Strncpy Trong C



Có nhiều hàm trong C++ để sao chép chuỗi hoặc ký tự từ nơi này sang nơi khác, đó là strcpy, strncpy và memcpy. Chúng khác biệt với nhau theo chức năng của chúng. Hướng dẫn này sẽ thảo luận về strncpy() hàm trong C++.

Hàm strncpy() trong C++ là gì

Hàm strncpy() là một hàm có sẵn trong C++ được sử dụng để sao chép một lượng ký tự cố định từ chuỗi này sang chuỗi khác. Hàm cần ba tham số: chuỗi đích sẽ chứa các ký tự, chuỗi nguồn sẽ cung cấp các ký tự và số lượng ký tự cần sao chép. Nếu chuỗi nguồn ít hơn số lượng ký tự đã chỉ định, thì chuỗi đích sẽ được đệm bằng các ký tự null cho độ dài còn lại.

Nguyên mẫu của hàm strncpy() được đưa ra bên dưới.







than * strncpy ( than * tay hằng số than * src, size_t đếm ) ;

Tham số của C++ strncpy() là gì

Tất cả các thông số của strncpy() chức năng được giải thích dưới đây.



  • tay: Một con trỏ tới mảng đích mà nội dung đã được
  • src: Một con trỏ tới mảng nguồn chứa nội dung
  • đếm: Số lượng ký tự cao nhất có thể được sao chép từ nguồn đến đích.

Hàm strncpy() hoạt động như thế nào trong C++

strncpy() hàm chấp nhận ba đối số: đích, src, đếm . Nó kiểm tra nếu src chuỗi bị kết thúc bằng null và nếu có, nó sao chép số lượng ký tự đã chỉ định từ src chuỗi để bắt đầu sợi dây. Nếu số đếm nhỏ hơn độ dài của src chuỗi, các ký tự đếm đầu tiên đã được chuyển đến bắt đầu chuỗi và không bị chấm dứt null. Nếu số lượng vượt quá độ dài của src , tất cả các ký tự từ src được sao chép vào bắt đầu và các ký tự null kết thúc bổ sung đã được đưa vào cho đến khi tất cả các ký tự đếm được viết.



Ví dụ đã cho minh họa hoạt động của C++ strncpy() chức năng.





#include
#include
sử dụng không gian tên tiêu chuẩn ;
int chủ yếu ( )
{
than src_str [ ] = 'Tôi đang viết mã cho strncpy' ;
than dest_str [ 60 ] ;
strncpy ( dest_str,src_str, kéo dài ( src_str ) ) ;
cout << dest_str << ' \N ' ;
trở lại 0 ;
}

Trong chương trình này, chúng tôi đã sử dụng tệp tiêu đề vì nó bao gồm strncpy() chức năng. Chúng tôi đã xác định hai chuỗi một là src_str và khác là dest_str. strncpy() Hàm lấy dữ liệu từ chuỗi src_str và sao chép nó vào dest_str . Đây strlen(src_str) được sử dụng để đếm tổng số ký tự từ chuỗi src_str .

Các đầu ra của chương trình có thể được hiển thị dưới đây.



Các vấn đề khi sử dụng strncpy() trong C++ là gì

  • Nếu không có ký tự null trong mảng đích hoặc chuỗi không được kết thúc bằng null, sớm hay muộn thì chương trình hoặc mã của chúng ta có thể gặp sự cố. Một chuỗi kết thúc không null trong C++ đã trở thành mã rủi ro có thể bị hỏng bất cứ lúc nào trong quá trình thực thi chương trình. Nó có thể dẫn đến lỗi phân đoạn trong chương trình. Kết quả là, strncpy() không đảm bảo rằng chuỗi đích luôn bị kết thúc bằng null, khiến nó trở thành mã nguy hiểm cho chương trình chúng tôi đang viết.
  • Chức năng này không thể kiểm tra tràn, vì vậy nếu chúng tôi cố gắng sao chép chuỗi nguồn đến đích có kích thước nhỏ hơn nguồn, chúng tôi sẽ gặp lỗi và hành vi không xác định.

Phần kết luận

Để sao chép dữ liệu từ chuỗi này sang chuỗi khác, chúng ta sử dụng strncpy() trong C ++, đây là một chức năng tích hợp trong tập tin tiêu đề. Trong bài viết này, chúng ta đã thảo luận về cú pháp và cách làm việc của C++ strncpy chức năng với một ví dụ. Chúng tôi cũng nhấn mạnh một số vấn đề do đó các strncpy chức năng có thể làm cho mã của chúng tôi gặp rủi ro.