Come utilizzare la funzione strncpy in c ++

Come utilizzare la funzione strncpy in c ++
Ci sono molte funzioni in C ++ per copiare stringhe o caratteri da un posto all'altro, che sono strncpy, strncpy e memcpy. Sono distinti l'uno dall'altro secondo le loro funzionalità. Questo tutorial discuterà strncpy () funzione in c++.

Qual è la funzione strncpy () in c++

La funzione strncpy () è una funzione C ++ integrata che viene utilizzata per copiare una quantità fissa di caratteri da una stringa a un'altra. La funzione necessita di tre parametri: la stringa di destinazione che conterrà i caratteri, la stringa di origine che fornirà i caratteri e il conteggio dei caratteri da copiare. Se la stringa di origine è inferiore al numero specificato di caratteri, la stringa di destinazione verrà imbottita con caratteri null alla lunghezza rimanente.

Il prototipo di una funzione strncpy () è riportato di seguito.

char *strncpy (char *dest, const char *src, size_t count);

Quali sono i parametri di c ++ strncpy ()

Tutti i parametri di strncpy () La funzione è spiegata di seguito.

  • dest: Un puntatore all'array di destinazione a cui è stato il contenuto
  • src: Un puntatore all'array di origine da cui è il contenuto
  • contare: Il numero più alto di caratteri che potrebbero essere copiati dalla sorgente a destinazione.

Come funziona la funzione strncpy () in c++

strncpy () La funzione accetta tre argomenti: dest, src, E contare. Controlla se il src la stringa è terminale null e, se sì, copia il numero specificato di caratteri da src stringa a dest corda. Se il conteggio è inferiore alla lunghezza del src stringa, i primi caratteri sono stati trasferiti dest stringa e non sono terminati null. Se il conteggio supera la lunghezza di src, Tutti i personaggi di src sono copiati a dest, e i caratteri null terminanti extra sono stati inclusi fino a quando tutti i caratteri del conteggio non sono scritti.

L'esempio dato illustra il funzionamento del C++ strncpy () funzione.

#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()

char src_str [] = "Sto scrivendo un codice per strncpy";
Char Dest_STR [60];
strncpy (dest_str, src_str, strlen (src_str));
cout<restituzione 0;

In questo programma, abbiamo usato file di intestazione perché include strncpy () funzione. Abbiamo definito due stringhe una è src_str E l'altro è dest_str. strncpy () funzione che prende i dati da SRC_STR String e lo copia al dest_str. Qui Strlen (SRC_STR) viene utilizzato per contare il numero totale di caratteri da SRC_STR String.

IL produzione del programma può essere mostrato di seguito.

Quali sono i problemi con l'uso di strncpy () in c++

  • Se non esiste un carattere nullo nell'array di destinazione o la stringa non è terminata null, il nostro programma o il nostro codice possono incontrare problemi prima o poi. Una stringa terminata non null in C ++ è diventata un codice rischioso che può rompersi in qualsiasi momento durante l'esecuzione del programma. Può comportare un errore di segmentazione nel programma. Di conseguenza, strncpy () non garantisce che la stringa di destinazione sia sempre terminata null, rendendola rischiosa per il programma che stiamo scrivendo.
  • Questa funzione non riesce a verificare l'overflow, quindi se tentiamo di copiare la stringa di origine su una destinazione di dimensioni più piccole rispetto alla fonte, otteniamo un errore e un comportamento indefinito.

Conclusione

Per copiare i dati da una stringa all'altra, utilizziamo strncpy () in C ++ che è una funzione integrata in File di intestazione. In questo articolo, abbiamo discusso della sintassi e del funzionamento della C++ strncpy funzione con un esempio. Abbiamo anche messo in evidenza alcuni problemi a causa dei quali il strncpy La funzione può rendere rischioso il nostro codice.