logo

strdup() un strndup() funkcijas C/C++

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 -:
1. norādiet uz nulles gala baitu virkni, lai to dublētu

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)