strncpy()
Menyalin sebagian karakter dari string dengan batasan dalam C
Fungsi strncpy() digunakan untuk menyalin sejumlah karakter tertentu dari string sumber ke string tujuan. Fungsi ini memberikan kontrol untuk mencegah buffer overflow dengan menyalin maksimal sejumlah karakter yang ditentukan, meskipun demikian, perhatikan bahwa penanganan karakter null ('\0') perlu diwaspadai.
Sintaks
char *strncpy(char *dest, const char *src, size_t n);dest➜ Pointer ke array (string) tujuan tempat string disalin.src➜ Pointer ke string sumber.n➜Jumlah maksimal karakter yang akan disalin.Mengembalikan: Pointer ke string tujuan (
dest).
Penjelasan
Menyalin Sebagian String: Fungsi ini akan menyalin hingga
nkarakter darisrckedest.Penanganan Karakter Null: Jika panjang
srckurang darin,strncpy()akan mengisi sisa buffer dengan karakter null ('\0'). Jikasrcmemiliki panjang sama dengan atau lebih darin, hasil salinan tidak dijamin memiliki karakter null di akhir, sehingga kamu harus memastikandestdiakhiri dengan'\0'jika diperlukan.Keamanan Buffer: Dengan menentukan
n, kamu bisa mencegah buffer overflow, asalkan ukurandestsetidaknya sebesarn.
Contoh Pengunaan
1. Menyalin sebagian string
#include <stdio.h>
#include <string.h>
int main() {
char sumber[] = "Hello, World!";
char tujuan[20];
// Menyalin 5 karakter pertama dari 'sumber' ke 'tujuan'
strncpy(tujuan, sumber, 5);
// Karena strncpy tidak selalu menambahkan '\0', tambahkan secara manual
tujuan[5] = '\0';
printf("Sumber: %s\n", sumber);
printf("Tujuan (5 karakter): %s\n", tujuan);
return 0;
}Hasilnya:
2. Menyalin string dan mengisi buffer dengan null
Hasilnya:
Di sini, sisa buffer di
tujuanakan terisi'\0'secara otomatis.
Last updated