The strdup() a strndup() funkce se používají k duplikování řetězce.
strdup() :
Syntaxe: char *strdup(const char *s);
Tato funkce vrací ukazatel na bajtový řetězec ukončený nulou, který je duplikátem řetězce, na který ukazuje s . Získaná paměť se provádí dynamicky pomocí malloc, a proto ji lze uvolnit pomocí free() .
Vrátí ukazatel na duplikovaný řetězec s .
Níže je implementace C, která ukazuje použití funkce strdup() v C:
c program pro porovnání řetězců
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;> }> |
>
>
javascript trim podřetězec
Výstup:
GeeksForGeeks>
strndup() :
syntax: char *strndup(const char *s, velikost_t n);
Tato funkce je podobná strdup(), ale maximálně kopíruje n bajtů.
Poznámka : Pokud je s delší než n, zkopíruje se pouze n bajtů a na konec se přidá NULL (‚‘).
Níže je implementace C, která ukazuje použití funkce strndup() v C:
filmy 123 až
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;> }> |
>
aes vs des
>
Výstup:
Geeks>
Podívejme se na rozdíly v tabulkové formě -:
| strdup() | strndup() | |
| 1. | Používá se k návratu ukazatele na bajtový řetězec ukončený nulou, | Používá se k vrácení ukazatele na bajtový řetězec ukončený nulou |
| 2. | Jeho syntaxe je -: char * strdup( const char *str1 ); | Jeho syntaxe je -: char *strndup( const char *str, velikost_t velikost ); |
| 3. | Je definován v hlavičkový soubor | Je definován v hlavičkový soubor |
| 4. | K duplikování je potřeba pouze jeden parametr, který je ukazatelem na bajtový řetězec ukončený nulou | Vyžaduje dva parametry, které jsou: 2. maximální počet bajtů ke kopírování ze str |
| 5. | Jeho návratová hodnota je ukazatel na nově přidělený řetězec. | Vrátí nulový ukazatel, pokud došlo k chybě. |
Odkaz: Linux muž (7)
narodil se Freddie Mercury