The strdup () un strndup () funkcijas tiek izmantotas, lai dublētu virkni.
strdup() :
Sintakse : char *strdup(const char *s);
Šī funkcija atgriež rādītāju uz nulles beigu baitu virkni, kas ir tās virknes dublikāts, uz kuru norāda s . Iegūtā atmiņa tiek veikta dinamiski, izmantojot malloc, un tāpēc to var atbrīvot, izmantojot free() .
Tas atgriež rādītāju uz dublēto virkni s .
Zemāk ir C ieviešana, lai parādītu funkcijas strdup () izmantošanu C:
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;> }> |
>
>
java noklusējuma parametri
Izvade:
GeeksForGeeks>
strndup() :
sintakse: char *strndup(const char *s, size_t n);
Šī funkcija ir līdzīga strdup(), bet ne vairāk kā kopē n baiti.
Piezīme : ja s ir garāks par n, tiek kopēti tikai n baiti, un beigās tiek pievienots NULL (' ').
Zemāk ir C ieviešana, lai parādītu funkcijas strndup () izmantošanu C:
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;> }> |
>
>
Izvade:
Geeks>
Apskatīsim atšķirības tabulas veidā -:
| strdup () | strndup () | |
| 1. | To izmanto, lai atgrieztu rādītāju uz nulles gala baitu virkni, | To izmanto, lai atgrieztu rādītāju uz nulles gala baitu virkni |
| 2. | Tās sintakse ir -: char * strdup( const char * str1 ); | Tās sintakse ir -: char *strndup( const char * str, size_t size ); |
| 3. | Tas ir definēts galvenes fails | Tas ir definēts galvenes fails |
| 4. | Lai dublētu, ir nepieciešams tikai viens parametrs, kas norāda uz nulles gala baitu virkni | Tam nepieciešami divi parametri, kas ir -: 2. Maksimālais baitu skaits, kas jākopē no str |
| 5. | Tās atgriešanas vērtība ir rādītājs uz tikko piešķirto virkni. | Ja radusies kļūda, tas atgriež nulles rādītāju. |
Atsauce: Linux cilvēks (7)