Paano Gamitin ang strncpy() Function sa C++

Paano Gamitin Ang Strncpy Function Sa C



Mayroong maraming mga function sa C++ upang kopyahin ang mga string o mga character mula sa isang lugar patungo sa isa pa, na strcpy, strncpy, at memcpy. Naiiba sila sa isa't isa ayon sa kanilang mga pag-andar. Tatalakayin ng tutorial na ito ang strncpy() function sa C++.

Ano ang strncpy() Function sa C++

Ang strncpy() function ay isang built-in na C++ function na ginagamit upang kopyahin ang isang nakapirming dami ng mga character mula sa isang string patungo sa isa pa. Ang function ay nangangailangan ng tatlong parameter: ang patutunguhang string na hahawak sa mga character, ang source string na magbibigay ng mga character, at ang bilang ng mga character na kokopyahin. Kung ang source string ay mas mababa kaysa sa tinukoy na bilang ng mga character, ang patutunguhang string ay mapupuntahan ng mga null na character sa natitirang haba.

Ang prototype ng isang strncpy() function ay ibinibigay sa ibaba.







char * strncpy ( char * mga kamay const char * src, laki_t bilangin ) ;

Ano ang Mga Parameter ng C++ strncpy()

Lahat ng mga parameter ng strncpy() function ay ipinaliwanag sa ibaba.



  • kamay: Isang pointer sa destination array kung saan napunta ang content
  • src: Isang pointer sa source array kung saan nagmula ang content
  • bilangin: Ang pinakamataas na bilang ng mga character na maaaring makopya mula sa pinagmulan hanggang sa destinasyon.

Paano Gumagana ang strncpy() Function sa C++

strncpy() tumatanggap ang function ng tatlong argumento: dest, src, at bilangin . Sinusuri nito kung ang src string ay null-terminated, at kung oo, kinokopya nito ang tinukoy na bilang ng mga character mula sa src string sa simulan string. Kung ang bilang ay mas mababa sa haba ng src string, ang unang bilang ng mga character ay inilipat sa simulan string at hindi null-terminated. Kung ang bilang ay lumampas sa haba ng src , lahat ng character mula sa src ay kinopya sa simulan , at ang mga karagdagang pagwawakas na null character ay naisama hanggang sa maisulat ang lahat ng bilang ng mga character.



Ang ibinigay na halimbawa ay naglalarawan sa pagtatrabaho ng C++ strncpy() function.





#include
#include
gamit namespace std ;
int pangunahing ( )
{
char src_str [ ] = 'Nagsusulat ako ng code para sa strncpy ' ;
char dest_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \n ' ;
bumalik 0 ;
}

Sa programang ito, ginamit namin header file dahil kasama dito strncpy() function. Tinukoy namin ang dalawang string ang isa ay src_str at ang isa ay dest_str. strncpy() function na kumukuha ng data mula sa src_str string at kopyahin ito sa dest_str . Dito strlen(src_str) ay ginagamit upang mabilang ang kabuuang bilang ng mga character mula sa src_str string .

Ang output ng programa ay maaaring ipakita sa ibaba.



Ano ang mga Problema sa Paggamit ng strncpy() sa C++

  • Kung walang null character sa destination array o ang string ay hindi null-terminated, ang aming program o code ay maaaring makatagpo ng mga problema sa maaga o huli. Ang isang hindi null na winakasan na string sa C++ ay naging mapanganib na code na maaaring masira anumang sandali sa panahon ng pagpapatupad ng programa. Maaari itong magresulta sa isang pagkakamali sa pagse-segment sa programa. Ang resulta, strncpy() ay hindi tinitiyak na ang patutunguhang string ay palaging null-terminated, na ginagawa itong mapanganib na code para sa program na isinusulat namin.
  • Nabigo ang function na ito na suriin kung may overflow, kaya kung susubukan naming kopyahin ang source string sa isang destinasyon na mas maliit sa laki kaysa sa source, magkakaroon kami ng error at hindi natukoy na gawi.

Konklusyon

Upang kopyahin ang data mula sa isang string patungo sa isa pa, ginagamit namin strncpy() sa C++ na isang built-in na function sa file ng header. Sa artikulong ito, tinalakay namin ang syntax at gumagana ng C++ strncpy function na may isang halimbawa. Binigyang-diin din namin ang ilang isyu dahil sa kung saan ang strncpy maaaring gawing peligroso ang ating code.