Cara Menggunakan Fungsi strncpy() dalam C++

Cara Menggunakan Fungsi Strncpy Dalam C



Terdapat banyak fungsi dalam C++ untuk menyalin rentetan atau aksara dari satu tempat ke tempat lain, iaitu strcpy, strncpy, dan memcpy. Mereka berbeza antara satu sama lain mengikut fungsi mereka. Tutorial ini akan membincangkan tentang strncpy() fungsi dalam C++.

Apakah Fungsi strncpy() dalam C++

Fungsi strncpy() ialah fungsi C++ terbina dalam yang digunakan untuk menyalin jumlah aksara tetap daripada satu rentetan ke rentetan yang lain. Fungsi ini memerlukan tiga parameter: rentetan destinasi yang akan memegang aksara, rentetan sumber yang akan menyediakan aksara dan kiraan aksara untuk disalin. Jika rentetan sumber kurang daripada bilangan aksara yang ditentukan, rentetan destinasi akan dipadatkan dengan aksara nol kepada baki panjang.

Prototaip fungsi strncpy() diberikan di bawah.







char * strncpy ( char * tangan const char * src, saiz_t mengira ) ;

Apakah Parameter C++ strncpy()

Semua parameter bagi strncpy() fungsi dijelaskan di bawah.



  • tangan: Penunjuk ke tatasusunan destinasi yang kandungannya telah
  • src: Penunjuk kepada tatasusunan sumber dari mana kandungannya
  • kira: Bilangan aksara tertinggi yang mungkin disalin dari sumber ke destinasi.

Bagaimana Fungsi strncpy() Berfungsi dalam C++

strncpy() fungsi menerima tiga hujah: dest, src, dan mengira . Ia menyemak sama ada src rentetan ditamatkan nol, dan jika ya, ia menyalin bilangan aksara yang ditentukan daripada src rentetan kepada mulakan tali. Jika kiraan kurang daripada panjang src rentetan, aksara kiraan pertama telah dipindahkan ke mulakan rentetan dan tidak ditamatkan nol. Jika kiraan melebihi panjang src , semua watak daripada src disalin ke mulakan , dan aksara null penamat tambahan telah disertakan sehingga semua aksara kiraan ditulis.



Contoh yang diberikan menggambarkan kerja C++ strncpy() fungsi.





#include
#include
menggunakan ruang nama std ;
int utama ( )
{
char src_str [ ] = 'Saya sedang menulis kod untuk strncpy ' ;
char dest_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \n ' ;
kembali 0 ;
}

Dalam program ini, kami menggunakan fail header kerana ia termasuk strncpy() fungsi. Kami menentukan dua rentetan satu ialah src_str dan yang lain ialah dest_str. strncpy() fungsi yang mengambil data daripada rentetan src_str dan menyalinnya ke dest_str . Di sini strlen(src_str) digunakan untuk mengira jumlah bilangan aksara daripada rentetan src_str .

The pengeluaran program boleh ditunjukkan di bawah.



Apakah Masalah dengan Menggunakan strncpy() dalam C++

  • Jika tiada aksara nol dalam tatasusunan destinasi atau rentetan tidak ditamatkan batal, program atau kod kami mungkin menghadapi masalah lambat laun. Rentetan yang tidak ditamatkan nol dalam C++ telah menjadi kod berisiko yang mungkin pecah pada bila-bila masa semasa pelaksanaan program. Ia mungkin mengakibatkan kesalahan pembahagian dalam program. Akibatnya, strncpy() tidak memastikan bahawa rentetan destinasi sentiasa dibatalkan, menjadikannya kod berisiko untuk program yang kami tulis.
  • Fungsi ini gagal untuk menyemak limpahan, jadi jika kami cuba menyalin rentetan sumber ke destinasi yang bersaiz lebih kecil daripada sumber, kami mendapat ralat dan tingkah laku yang tidak ditentukan.

Kesimpulan

Untuk menyalin data dari satu rentetan ke rentetan yang lain, kami menggunakan strncpy() dalam C++ yang merupakan fungsi terbina dalam fail pengepala. Dalam artikel ini, kami telah membincangkan sintaks dan kerja C++ strncpy fungsi dengan contoh. Kami juga mengetengahkan beberapa isu yang disebabkan oleh strncpy fungsi boleh membuat kod kita berisiko.