Funzione strdup nella lingua C

Funzione strdup nella lingua C
Memorizzare e padroneggiare le funzioni che si occupano di stringhe è molto importante perché le usiamo sempre in una parte del programma che sviluppiamo.

Le stringhe sono una parte importante della programmazione perché vengono utilizzate per inviare messaggi all'utente, visualizzare i risultati, leggere i file o specificare il loro percorso, tra le altre cose. Sono anche il metodo di input e output che facilita l'interazione tra l'utente e il programma.

In questo articolo di Linux, imparerai come utilizzare la funzione strdup () per duplicare le stringhe. Vedremo la sintassi e la descrizione teorica di chiamare il metodo, i suoi argomenti di input e output e il tipo di dati accettati in ciascun caso.

Quindi, applichiamo ciò che abbiamo appreso negli esempi pratici usando frammenti di codice e immagini per mostrarti come utilizzare la funzione strdup () per duplicare le stringhe.

Sintassi della funzione strdup () in linguaggio

char *strdup (const char *str);

Descrizione della funzione strdup () in lingua c

La funzione strdup () duplica una stringa. Questa funzione duplica la stringa che viene indicata dal puntatore STR che viene passata nell'argomento di input e restituisce un puntatore alla nuova stringa come risultato.

Strdup () appartiene alla famiglia di funzioni strxxdup (), tutte destinate a duplicare le corde, ma ognuna delle quali ha una modalità di chiamata e funzionalità diverse per soddisfare le esigenze particolari del programmatore.

Come tutte le funzioni di elaborazione delle stringhe, strdup () è definita nella "stringa.H ”intestazione. Per usarlo, devi includerlo nel tuo codice come segue:

#includere

Come duplicare una stringa usando la funzione strdup () nella lingua C

In questo esempio, utilizziamo la funzione strdup () per duplicare una stringa. Quindi, utilizziamo la funzione printf () per visualizzare i puntatori della stringa "originale" e "duplicato" nella console di comando.

Per fare questo, includiamo "stdio.H "e" String.H ”intestazioni nel nostro codice e definire i puntatori di due stringhe all'interno della funzione principale (). Il primo si chiama "originale" che contiene il "Esempio per la funzione strdup ()"Espressione. Il secondo puntatore si chiama "duplicato" che contiene la posizione in cui la funzione strdup () memorizza la copia della stringa originale.

Una volta definite le stringhe utilizzate dal programma, chiamiamo la funzione strdup () e passiamo il puntatore alla stringa originale come argomento di input e il puntatore alla stringa duplicata come argomento di output. Quindi, utilizziamo la funzione print () per visualizzare i puntatori della stringa "originale" e "duplicato" sulla console di comando. Ecco il codice per questo esempio:

#includere
#includere
void main ()

char* originale = "Esempio di strdup () funzione";
char* duplicato;
duplicato = strdup (originale);
printf ("originale:%s \ n", originale);
printf ("duplicato:%s \ n", duplicato);

Come vediamo nella figura seguente, strdup () duplica la stringa originale duplicando letteralmente il suo contenuto.

Differenze tra le funzioni strdup () e strndup ()

La famiglia strxxdupx () è costituita dalle seguenti funzioni:

char *strdup (const char *s);
char *strndup (const char *s, size_t n);
char *strdupa (const char *s);
char *strndupa (const char *s, size_t n);

Le funzioni di questa famiglia sono tutte progettate per duplicare le corde, ma ognuna di esse funziona in modo diverso.

Come abbiamo visto, la funzione strdup () duplica completamente la stringa che viene inviata nel suo argomento di input e restituisce una copia esatta nel suo argomento di output.

La funzione strndup () duplica la stringa del suo argomento di input. Può farlo completamente o parzialmente.

A differenza di strdup (), la funzione strndup () prende due argomenti di input. Il primo argomento è "STR" che è il puntatore alla stringa da duplicare. Il secondo argomento è "n" che è una variabile di tipo size_t che specifica il numero di caratteri che copie.

Nel seguente esempio, vediamo l'uso della funzione strndup () in cui solo 8 dei caratteri della stringa originale sono duplicati.

#includere
#includere
void main ()

char* originale = "Esempio di strdup () funzione";
char* duplicato;
size_t n = 8;
duplicato = strndup (originale, n);
printf ("originale:%s \ n", originale);
printf ("duplicato:%s \ n", duplicato);

Come visto nella figura seguente, la funzione strndup () duplica un numero di caratteri "n" dalla stringa originale.

Errori che possono essere generati dalla funzione strdup ()

L'errore che questa funzione può generare è che "il sistema non ha abbastanza memoria per eseguire il processo", il che è improbabile per i sistemi attuali.

Questo errore è definito in "Errno.H ”” e il suo codice possono essere interrogati tramite la variabile Errno Global. La sua definizione è Enomem.

Conclusione

In questo articolo di Linux, abbiamo spiegato come utilizzare la funzione strdup () che appartiene alla famiglia delle funzioni di elaborazione delle stringhe definite nella stringa.HEADER H.

Abbiamo esaminato la sintassi di questa funzione e fornito una spiegazione teorica sul suo utilizzo, i suoi argomenti di input e output.

Per aiutarti a capire meglio come funziona, abbiamo creato un esempio pratico con codice e immagini in cui puoi vedere come vengono creati i puntatori e le stringhe utilizzate da questa funzione e come viene chiamata la funzione.

Ti abbiamo anche mostrato come utilizzare la funzione strndup (), un'altra funzione della famiglia strxxdupx (), in modo da conoscere le diverse possibilità che il linguaggio C offre di duplicare le stringhe.