strdup() ja strndup() toimivat C/C++:ssa

The strdup() ja strndup() funktioita käytetään monistamaan merkkijono.
strdup() :
Syntaksi : char *strdup(const char *s);
Tämä funktio palauttaa osoittimen nollapääteiseen tavumerkkijonoon, joka on kopio merkkijonosta, johon s . Saatu muisti tehdään dynaamisesti käyttämällä mallocia, joten se voidaan vapauttaa käyttämällä free() -funktiota.
Se palauttaa osoittimen monistettuun merkkijonoon s .
Alla on C-toteutus, joka näyttää strdup()-funktion käytön C:ssä:

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

Lähtö:

GeeksForGeeks 

strndup() :
syntaksi: char *strndup(const char *s, size_t n);
Tämä toiminto on samanlainen kuin strdup(), mutta kopioi enintään n tavua.
Huomautus : Jos s on pidempi kuin n, vain n tavua kopioidaan ja loppuun lisätään NULL (' ').
Alla on C-toteutus, joka näyttää strndup()-funktion käytön C:ssä:

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

Lähtö:

Geeks 

Katsotaanpa erot taulukkomuodossa -:

strdup() strndup()
1. Sitä käytetään palauttamaan osoitin nollapääteiseen tavumerkkijonoon, Sitä käytetään palauttamaan osoitin nollapääteiseen tavumerkkijonoon
2. Sen syntaksi on -:
char * strdup( const char * str1 );

Sen syntaksi on -:

char *strndup( const char *str, koko_t koko );

3. Se on määritelty kohdassa otsikkotiedosto Se on määritelty kohdassa otsikkotiedosto
4. Kopistamiseen tarvitaan vain yksi parametri, joka on osoitin nollapäätteiseen tavumerkkijonoon

Se vaatii kaksi parametria, jotka ovat -:
1.osoitin kopioitavaan nollapääteiseen tavumerkkijonoon

2. enimmäismäärä tavuja kopioida str

5. Sen palautusarvo on osoitin juuri varattuun merkkijonoon. Se palauttaa nollaosoittimen, jos tapahtui virhe.

Viite: Linux mies (7)