Rumah > pembangunan bahagian belakang > C++ > Mengapa kami fikir strncpy dalam C/C++ tidak selamat?

Mengapa kami fikir strncpy dalam C/C++ tidak selamat?

WBOY
Lepaskan: 2023-09-13 09:17:02
ke hadapan
1244 orang telah melayarinya

Mengapa kami fikir strncpy dalam C/C++ tidak selamat?

Fungsi strncpy() digunakan untuk menyalin bilangan aksara yang ditentukan dari sumber ke destinasi.

Berikut ialah sintaks strncpy()

char *strncpy( char *destination, char *source, size_t n);
Salin selepas log masuk

Di sini, destinasi ialah penunjuk kepada tatasusunan destinasi yang mana rentetan sumber akan disalin, sumber ialah rentetan untuk disalin, dan n ialah rentetan untuk disalin daripada . Bilangan maksimum aksara untuk disalin. Fungsi

strncpy() tidak selamat kerana jika tiada aksara NULL dalam n aksara pertama rentetan sumber, rentetan sasaran tidak akan ditamatkan NULL.

Berikut ialah program yang menunjukkan fungsi strncpy() dalam C++.

Contoh

Demonstrasi dalam talian

#include <iostream>
#include <cstring>
using namespace std;
int main () {
   char source[20] = "This is a string";
   char dest[20];
   strncpy(dest, source, 4);
   cout << "The destination string is: " << dest;
   return 0;
}
Salin selepas log masuk

Output

Output program di atas adalah seperti berikut.

The destination string is: This
Salin selepas log masuk

Sekarang mari kita fahami program di atas.

Rentetan sumber mengandungi data "Ini adalah rentetan". Kemudian gunakan strncpy() untuk menyalin empat aksara pertama ke dalam rentetan sasaran. Kemudian cetak kandungan rentetan sasaran. Coretan kod yang menunjukkan ini adalah di bawah.

rreeee

Atas ialah kandungan terperinci Mengapa kami fikir strncpy dalam C/C++ tidak selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan