strdup() og strndup() funksjoner i C/C++
De strdup() og strndup() funksjoner brukes til å duplisere en streng.
strdup():
Syntaks: char *strdup(konst char *s);
Denne funksjonen returnerer en peker til en null-terminert byte-streng, som er et duplikat av strengen pekt på av s . Minnet som oppnås gjøres dynamisk ved å bruke malloc, og det kan derfor frigjøres ved å bruke free() .
Den returnerer en peker til den dupliserte strengen s .
Nedenfor er C-implementeringen for å vise bruken av strdup()-funksjonen 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;> }> |
Produksjon:
GeeksForGeeks
strndup():
syntaks: char *strndup(konst char *s, størrelse_t n);
Denne funksjonen ligner på strdup(), men kopierer på det meste n bytes.
Merk : Hvis s er lengre enn n, kopieres bare n byte, og en NULL (' ') legges til på slutten.
Nedenfor er C-implementeringen for å vise bruken av strndup()-funksjonen i C:
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;> }> |
Produksjon:
Geeks
La oss se forskjellene i en tabellform -:
| strdup() | strndup() | |
| 1. | Den brukes til å returnere en peker til en nullterminert bytestreng, | Den brukes til å returnere en peker til en nullterminert bytestreng |
| 2. | Syntaksen er -: char * strdup( const char *str1 ); | Syntaksen er -: char *strndup( const char *str, size_t size ); |
| 3. | Det er definert i header-fil | Det er definert i header-fil |
| 4. | Det tar bare én parameter som er pekeren til den nullterminerte bytestrengen for å duplisere | Det krever to parametere som er -: 2. maks antall byte å kopiere fra str |
| 5. | Returverdien er pekeren til den nylig tildelte strengen. | Den returnerer en null-peker hvis det oppstod en feil. |
Henvisning: Linux mann (7)