logo

strdup() och strndup() fungerar i C/C++

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 -:
1.pekare till den nollterminerade bytesträngen för att duplicera

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)