De strdup() och strndup() funktioner används för att duplicera en sträng.
strdup():
Syntax : char *strdup(konst char *s);
Denna funktion returnerar en pekare till en noll-terminerad bytesträng, som är en dubblett av strängen som pekas på av s . Det erhållna minnet görs dynamiskt med malloc och kan därför frigöras med free() .
Den returnerar en pekare till den duplicerade strängen s .
Nedan är C-implementationen för att visa användningen av strdup()-funktionen i C:
C
faktoriell java
// 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;> }> |
statiskt nyckelord i java
>
>
Produktion:
GeeksForGeeks>
strndup():
syntax: char *strndup(konst char *s, storlek_t n);
Denna funktion liknar strdup(), men kopierar som mest n bytes.
Notera : Om s är längre än n, kopieras endast n byte, och en NULL (' ') läggs till i slutet.
Nedan är C-implementeringen för att visa användningen av strndup()-funktionen i C:
C
df.loc
// 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;> }> |
>
myflixr
>
Produktion:
Geeks>
Låt oss se skillnaderna i tabellform -:
| strdup() | strndup() | |
| 1. | Den används för att returnera en pekare till en noll-terminerad bytesträng, | Den används för att returnera en pekare till en noll-terminerad bytesträng |
| 2. | Dess syntax är -: char * strdup( const char *str1 ); | Dess syntax är -: char *strndup( const char *str, size_t size ); vad är ett linux filsystem |
| 3. | Det definieras i header-fil | Det definieras i header-fil |
| 4. | Det krävs bara en parameter som är pekare till den nollterminerade bytesträngen för att duplicera | Det krävs två parametrar som är -: 2. max antal byte att kopiera från str |
| 5. | Dess returvärde är en pekare till den nyligen allokerade strängen. | Den returnerar en nollpekare om ett fel inträffade. |
Referens: Linux man(7)