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, Và đế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
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