The strdup() a strndup() funkcie sa používajú na duplikovanie reťazca.
strdup() :
Syntax: char *strdup(const char *s);
Táto funkcia vracia ukazovateľ na bajtový reťazec ukončený nulou, ktorý je duplikátom reťazca, na ktorý ukazuje s . Získaná pamäť sa robí dynamicky pomocou malloc, a preto ju možno uvoľniť pomocou free() .
Vráti ukazovateľ na duplikovaný reťazec s .
Nižšie je implementácia C, ktorá ukazuje použitie funkcie strdup() v C:
C
konverzia dátumu na reťazec
// 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;> }> |
>
>
Výkon:
GeeksForGeeks>
strndup() :
syntax: char *strndup(const char *s, veľkosť_t n);
Táto funkcia je podobná funkcii strdup(), ale maximálne kopíruje n bajtov.
Poznámka : Ak je s dlhšie ako n, skopíruje sa iba n bajtov a na koniec sa pridá NULL (‚ ‘).
Nižšie je uvedená implementácia C, ktorá ukazuje použitie funkcie strndup() v C:
C
// 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;> }> |
>
>
Výkon:
Geeks>
Pozrime sa na rozdiely v tabuľkovej forme -:
| strdup() | strndup() | |
| 1. | Používa sa na vrátenie ukazovateľa na bajtový reťazec ukončený nulou, | Používa sa na vrátenie ukazovateľa na bajtový reťazec ukončený nulou |
| 2. | Jeho syntax je -: char * strdup( const char *str1 ); | Jeho syntax je -: nájsť môj iphone z androidu char *strndup( const char *str, veľkosť_t veľkosť ); |
| 3. | Je definovaný v hlavičkový súbor | Je definovaný v hlavičkový súbor |
| 4. | Na duplikovanie stačí jeden parameter, ktorý je ukazovateľom na bajtový reťazec ukončený nulou | Vyžaduje si to dva parametre, a to: 2. maximálny počet bajtov na kopírovanie zo str |
| 5. | Jeho návratová hodnota je ukazovateľ na novo pridelený reťazec. | Ak dôjde k chybe, vráti nulový ukazovateľ. |
Referencia: Linux man (7)