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: 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)