El strdup() i strndup() Les funcions s'utilitzen per duplicar una cadena.
strdup():
Sintaxi: char *strdup(const char *s);
Aquesta funció retorna un punter a una cadena de bytes terminada en nul·la, que és un duplicat de la cadena apuntada per s . La memòria obtinguda es fa de forma dinàmica mitjançant malloc i, per tant, es pot alliberar mitjançant free() .
Retorna un punter a la cadena duplicada s .
A continuació es mostra la implementació C per mostrar l'ús de la funció strdup() en 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;> }> |
>
>
Sortida:
GeeksForGeeks>
strndup():
sintaxi: char *strndup(const char *s, size_t n);
Aquesta funció és similar a strdup(), però copia com a màxim n bytes.
Nota : Si s és més llarg que n, aleshores només es copien n bytes i s'afegeix un NULL (‘ ’) al final.
A continuació es mostra la implementació C per mostrar l'ús de la funció strndup() en C:
C
matemàtiques java pow
// 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;> }> |
>
>
Sortida:
Geeks>
Vegem les diferències en forma tabular -:
| strdup() | strndup() | |
| 1. | S'utilitza per retornar un punter a una cadena de bytes terminada en nul·la, | S'utilitza per retornar un punter a una cadena de bytes terminada en null |
| 2. | La seva sintaxi és -: char * strdup( const char *str1 ); | La seva sintaxi és -: char *strndup(const char *str, size_t size); |
| 3. | Es defineix a fitxer de capçalera | Es defineix a fitxer de capçalera |
| 4. | Només es necessita un paràmetre que sigui el punter a la cadena de bytes acabada en nul per duplicar | Pren dos paràmetres que són -: 2. nombre màxim de bytes per copiar de str |
| 5. | El seu valor de retorn és el punter a la cadena acabada d'assignar. | Retorna un punter nul si s'ha produït un error. |
Referència: Home Linux (7)