De strdup() En strndup() functies worden gebruikt om een string te dupliceren.
strdup() :
Syntaxis: char *strdup(const char *s);
Deze functie retourneert een pointer naar een op nul eindigende bytetekenreeks, die een duplicaat is van de tekenreeks waarnaar wordt verwezen S . Het verkregen geheugen wordt dynamisch gedaan met malloc en kan daarom worden vrijgegeven met free() .
Het retourneert een verwijzing naar de gedupliceerde tekenreeks S .
Hieronder vindt u de C-implementatie om het gebruik van de strdup()-functie in C te tonen:
C
wat is het internet
// 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;> }> |
faculteit in Java
>
>
Uitgang:
GeeksForGeeks>
strndup() :
syntaxis: char *strndup(const char *s, size_t n);
Deze functie is vergelijkbaar met strdup(), maar kopieert maximaal N bytes.
Opmerking : Als s langer is dan n, worden er slechts n bytes gekopieerd en wordt aan het einde een NULL (‘ ’) toegevoegd.
Hieronder vindt u de C-implementatie om het gebruik van de strndup()-functie in C te tonen:
C
vijandige zoektocht
// 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;> }> |
>
>
Uitgang:
polymorfisme in Java
Geeks>
Laten we de verschillen in tabelvorm bekijken -:
| strdup() | strndup() | |
| 1. | Het wordt gebruikt om een pointer terug te sturen naar een op nul eindigende bytestring, | Het wordt gebruikt om een pointer terug te sturen naar een op nul eindigende bytestring |
| 2. | De syntaxis ervan is -: char * strdup( const char *str1 ); | De syntaxis ervan is -: char *strndup( const char *str, size_t size ); software testen en typen |
| 3. | Het is gedefinieerd in header-bestand | Het is gedefinieerd in header-bestand |
| 4. | Er is slechts één parameter nodig die verwijst naar de op null eindigende bytereeks om te dupliceren | Er zijn twee parameters nodig: -: 2. maximaal aantal bytes om te kopiëren van str |
| 5. | De retourwaarde ervan is een verwijzing naar de nieuw toegewezen string. | Het retourneert een nulaanwijzer als er een fout is opgetreden. |
Referentie: Linux-man(7)