logo

strdup() og strndup() funktioner i C/C++

Det strdup() og strndup() funktioner bruges til at duplikere en streng.
strdup():
Syntaks: char *strdup(konst char *s);
Denne funktion returnerer en pointer til en nul-termineret byte-streng, som er en duplikat af strengen, der peges på af s . Den opnåede hukommelse udføres dynamisk ved hjælp af malloc, og den kan derfor frigøres ved hjælp af free() .
Det returnerer en markør til den duplikerede streng s .
Nedenfor er C-implementeringen for at vise brugen af ​​strdup()-funktionen i C:

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;> }>



java design mønstre
>

>

Produktion:

GeeksForGeeks>

strndup():
syntaks: char *strndup(konst char *s, størrelse_t n);
Denne funktion ligner strdup(), men kopierer højst n bytes.
Bemærk : Hvis s er længere end n, kopieres kun n bytes, og en NULL (' ') tilføjes til sidst.
Nedenfor er C-implementeringen for at vise brugen af ​​strndup()-funktionen i C:

C

1 million i cifre




// 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;> }>

>

dynamisk array i java
>

Produktion:

Geeks>

Lad os se forskellene i en tabelform -:

strdup() strndup()
1. Det bruges til at returnere en pointer til en null-termineret byte-streng, Det bruges til at returnere en pointer til en null-termineret byte-streng
2. Dens syntaks er -:
char * strdup( const char *str1 );

Dens syntaks er -:

char *strndup( const char *str, size_t size );

3. Det er defineret i header-fil Det er defineret i header-fil
4. Det tager kun én parameter, der er pointer til den null-terminerede byte-streng for at duplikere

Det kræver to parametre, der er -:
1.peg på den null-terminerede byte-streng for at duplikere

2. maks. antal bytes at kopiere fra str

5. Dens returværdi er pointer til den nyligt allokerede streng. Det returnerer en nul-pointer, hvis der opstod en fejl.

Reference: Linux mand(7)