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