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 -: 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)