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 -: 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)