logo

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

onclick javascript
>

>

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

arrayliste metoder




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

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 -:
1.peker til den nullterminerte bytestrengen for å duplisere

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)