logo

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








osittainen riippuvuus
// 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)