Cum se utilizează funcția strncpy() în C++

Cum Se Utilizeaza Functia Strncpy In C



Există multe funcții în C++ pentru a copia șiruri de caractere sau caractere dintr-un loc în altul, care sunt strcpy, strncpy și memcpy. Sunt distincte unul de altul în funcție de funcționalitățile lor. Acest tutorial va discuta despre strncpy() funcție în C++.

Ce este funcția strncpy() în C++

Funcția strncpy() este o funcție C++ încorporată care este utilizată pentru a copia o cantitate fixă ​​de caractere dintr-un șir în altul. Funcția are nevoie de trei parametri: șirul de destinație care va reține caracterele, șirul sursă care va furniza caracterele și numărul de caractere de copiat. Dacă șirul sursă este mai mic decât numărul specificat de caractere, șirul de destinație va fi completat cu caractere nule până la lungimea rămasă.

Prototipul unei funcții strncpy() este prezentat mai jos.







char * strncpy ( char * mâinile const char * src, dimensiune_t numara ) ;

Care sunt parametrii C++ strncpy()

Toți parametrii de strncpy() funcția sunt explicate mai jos.



  • mână: Un pointer către matricea de destinație la care a fost conținutul
  • src: Un pointer către matricea sursă din care este conținutul
  • numara: Cel mai mare număr de caractere care ar putea fi copiate de la sursă la destinație.

Cum funcționează funcția strncpy() în C++

strncpy() funcția acceptă trei argumente: dest, src, și numara . Se verifică dacă src șirul este terminat cu nul, iar dacă da, copiază numărul specificat de caractere din src sfoară la start şir. Dacă numărul este mai mic decât lungimea src șir, în care au fost transferate primele caractere de numărare start șir și nu sunt terminate cu nul. Dacă numărul depășește lungimea de src , toate personajele din src sunt copiate în start , și caractere nule de terminare suplimentare au fost incluse până când toate caracterele de numărare sunt scrise.



Exemplul dat ilustrează funcționarea C++ strncpy() funcţie.





#include
#include
folosind spatiu de nume std ;
int principal ( )
{
char src_str [ ] = „Scriu un cod pentru strncpy” ;
char dest_str [ 60 ] ;
strncpy ( dest_str,src_str, strlen ( src_str ) ) ;
cout << dest_str << ' \n ' ;
întoarcere 0 ;
}

În acest program, am folosit <șir.h> fișier antet deoarece include strncpy() funcţie. Am definit două șiruri unul este src_str iar celălalt este dest_str. strncpy() funcție care preia date de la src_str șir și îl copiază în dest_str . Aici strlen(src_str) este folosit pentru a număra numărul total de caractere din src_str șir .

The ieșire a programului poate fi prezentat mai jos.



Care sunt problemele cu utilizarea strncpy() în C++

  • Dacă nu există niciun caracter nul în tabloul de destinație sau șirul nu este terminat cu nul, programul sau codul nostru poate întâmpina probleme mai devreme sau mai târziu. Un șir terminat non-null în C++ a devenit un cod riscant care se poate rupe în orice moment în timpul execuției programului. Poate duce la o eroare de segmentare în program. Ca urmare, strncpy() nu asigură că șirul de destinație este întotdeauna terminat cu nul, ceea ce îl face un cod riscant pentru programul pe care îl scriem.
  • Această funcție nu reușește să verifice depășirea, așa că dacă încercăm să copiem șirul sursă într-o destinație care este mai mică ca dimensiune decât sursa, obținem o eroare și un comportament nedefinit.

Concluzie

Pentru a copia date dintr-un șir în altul, folosim strncpy() în C++, care este o funcție încorporată în <șir.h> fișier antet. În acest articol, am discutat despre sintaxa și funcționarea C++ strncpy functioneaza cu un exemplu. De asemenea, am evidențiat câteva probleme din cauza cărora strncpy funcția poate face codul nostru riscant.