Strncpy è anche noto come funzione di copia stringa. È una funzione cruciale offerta dalla libreria di stringhe C della lingua C. Strncpy è responsabile della copia di una parte del contenuto di una stringa in un altro.
strncpy (String_a, String_b, 6) copierà i primi 6 caratteri di String "String_b" su String "String_A". String_a è la stringa a cui viene copiato il contenuto della stringa. Considerando che String_b è quello che verrà utilizzato per recuperare i primi 6 caratteri della stringa o la stringa da cui devono essere copiati i primi 6 caratteri.
Nel caso in cui la lunghezza della stringa (da cui verrà copiata la parte della stringa è inferiore alla stringa a cui verrà copiata la stringa), non copierà il valore della stringa completa nella stringa di destinazione.
Sintassi
La sintassi da chiamare strncpy () La funzione è:
Nella sintassi sopra, “Char*Dest indica la destinazione a cui deve essere memorizzata la stringa. Il secondo parametro "const char*src " è uno standard di C che specifica che il src è un puntatore del personaggio e nel terzo parametro diamo la dimensione alla nostra funzione per definire quanti caratteri della stringa da copiare. Il secondo parametro non può essere modificato, motivo per cui è costante. In questa funzione, archiviamo una stringa nel nostro parametro di origine e la copiamo su qualsiasi destinazione rappresentata come "dest". Quindi, dai la dimensione della nostra variabile di destinazione in modo che la funzione copia lo stesso numero di caratteri dalla nostra stringa x. Possiamo anche passare null al parametro di origine.
Esempio 1:
In questo esempio, abbiamo dichiarato array a due caratteri che sono xey usando un array di dimensioni 20 per "x" e 5 per "y". Abbiamo archiviato String "Hello World" nella nostra variabile X che è la nostra variabile di origine.
Dopo aver dichiarato i nostri array di caratteri, chiameremo il nostro strncpy funzione per copiare la nostra stringa desiderata sull'altro. In strncpy, Abbiamo superato sia la destinazione degli array che l'array di origine insieme alla dimensione a cui viene copiata la stringa.
Nel codice sopra, Y è la nostra stringa di caratteri di destinazione di cui abbiamo discusso in precedenza nell'introduzione. Questa funzione ha tre parametri: origine, destinazione e lunghezza. Il nostro obiettivo principale è copiare il valore della stringa che abbiamo assegnato al nostro array di origine "X" nel nostro array di destinazione "Y". Abbiamo dato la lunghezza della variabile y come terzo parametro in modo che copia lo stesso numero di caratteri di quello della lunghezza di y. Usando il printf () Dichiarazione, stamperemo l'array copiato come output in cui %s viene utilizzato per stampare la stringa dal primo carattere al carattere null "\ 0" e "y" è l'array risultante che deve essere stampato.
Il nostro codice fornirà il seguente output una volta eseguito. Come possiamo vedere nella nostra produzione, non ha copiato l'intera frase perché gli abbiamo dato la lunghezza di Y che era solo 5, quindi ha copiato solo 5 caratteri dalla stringa.
Esempio n. 2:
Nell'esempio seguente, abbiamo inizializzato per la prima volta i nostri array Char chiamati "A" e "B" a una dimensione fissa di 6. Dopo l'inizializzazione, abbiamo passato i nostri array al strncpy funzione con la lunghezza della stringa a cui verrà copiata.
Quando strncpy copia il contenuto dell'origine verso la destinazione, copia la stringa senza terminare il carattere null. Qui, stiamo specificando la dimensione del parametro B. L'intera stringa verrà copiata su "B". Strncpy Non aggiunge mai un carattere \ 0 o null alla fine quando la dimensione della sorgente è uguale alla dimensione della destinazione, quindi dobbiamo aggiungere manualmente il carattere \ 0 o null alla fine del nostro personaggio "B".
Se diamo un'occhiata al nostro output, abbiamo copiato il nostro valore di stringa da un carattere all'altro. Ecco perché abbiamo la nostra produzione come "grande".
Esempio # 3:
Nel campione di codice seguente, stiamo usando il metodo per far copiare l'array su un valore specificato costante. Per fare ciò, dichiareremo prima le nostre variabili a due stringa usando un array di caratteri a una lunghezza specificata: "Stra Stringa" con una lunghezza di 20 e "StringB" con una lunghezza di dimensione 25. Non abbiamo assegnato alcuna stringa al nostro array di origine usando il metodo strcpy. Inseriremo la stringa manualmente alla variabile sorgente "StringB". Quindi, chiama la nostra funzione strncpy in cui il primo argomento è la variabile di destinazione e il secondo è una variabile di origine. Ma stiamo assegnando il valore alla nostra fonte anche usando il nostro strncpy funzione.
Nella riga 6, stiamo facendo una copia completa della nostra stringa per assegnare il valore alla nostra fonte. Dopo aver assegnato il valore, abbiamo copiato il valore StringB a STRingA che è la nostra destinazione. Gli abbiamo dato una lunghezza di 7, il che significa che copierà solo i primi 7 caratteri della nostra stringa di origine.
Abbiamo usato printf () Dichiarazione, uno per stampare il nostro valore di origine e l'altro per stampare il nostro valore di destinazione. Come possiamo vedere nel nostro output, il valore di Stra è solo 7 caratteri perché durante la copia, gli abbiamo dato una lunghezza di 7. Stringb stampato la stringa completa perché abbiamo usato strcpy invece di strncpy funzione che copiava l'intera stringa.
Conclusione
In questa guida, abbiamo imparato a conoscere la funzione strncpy () della lingua C. Puoi esplorare di più sulla funzione strncpy () della libreria C usando più esempi, puoi ottenere una comprensione ancora migliore implementandola. Ci ha permesso di utilizzare una singola stringa in un codice più volte invece di scriverlo ancora e ancora. Assegnandolo solo a una variabile riduce la complessità dei valori ripetuti.