logo

funkce strdup() a strndup() v C/C++

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:
1.ukazatel na bajtový řetězec zakončený nulou, který chcete duplikovat

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