logo

Funzioni strdup() e strndup() in C/C++

IL strdup() E strndup() le funzioni vengono utilizzate per duplicare una stringa.
strdup() :
Sintassi: char *strdup(const char *s);
Questa funzione restituisce un puntatore a una stringa di byte con terminazione null, che è un duplicato della stringa puntata da S . La memoria ottenuta viene eseguita dinamicamente utilizzando malloc e quindi può essere liberata utilizzando free() .
Restituisce un puntatore alla stringa duplicata S .
Di seguito è riportata l'implementazione C per mostrare l'uso della funzione strdup() in C:

C








// C program to demonstrate strdup()> #include> #include> int> main()> {> >char> source[] =>'GeeksForGeeks'>;> >// A copy of source is created dynamically> >// and pointer to copy is returned.> >char>* target = strdup(source);> >printf>(>'%s'>, target);> >return> 0;> }>



nat vs letto
>

>

Produzione:

GeeksForGeeks>

strndup() :
sintassi: char *strndup(const char *s, size_t n);
Questa funzione è simile a strdup(), ma al massimo copia N byte.
Nota : Se s è più lungo di n, vengono copiati solo n byte e alla fine viene aggiunto un NULL (' ').
Di seguito è riportata l'implementazione C per mostrare l'uso della funzione strndup() in C:

C

dormire in Javascript




// C program to demonstrate strndup()> #include> #include> int> main()> {> >char> source[] =>'GeeksForGeeks'>;> >// 5 bytes of source are copied to a new memory> >// allocated dynamically and pointer to copied> >// memory is returned.> >char>* target = strndup(source, 5);> >printf>(>'%s'>, target);> >return> 0;> }>

>

nginx
>

Produzione:

Geeks>

Vediamo le differenze in forma tabellare:

strdup() strndup()
1. Viene utilizzato per restituire un puntatore a una stringa di byte con terminazione null, Viene utilizzato per restituire un puntatore a una stringa di byte con terminazione null
2. La sua sintassi è -:
char *strdup( const char *str1 );

La sua sintassi è -:

char *strndup( const char *str, size_t dimensione );

3. È definito in file di intestazione È definito in file di intestazione
4. È necessario solo un parametro che sia puntatore alla stringa di byte con terminazione null da duplicare

Sono necessari due parametri:
1.puntatore alla stringa di byte con terminazione null da duplicare

2. numero massimo di byte da copiare da str

5. Il suo valore restituito è un puntatore alla stringa appena allocata. Restituisce un puntatore nullo se si è verificato un errore.

Riferimento: Uomo Linux(7)