The strdup() і strndup() функції використовуються для дублювання рядка.
strdup() :
Синтаксис: char *strdup(const char *s);
Ця функція повертає вказівник на рядок байтів із закінченням нульовим значенням, який є дублікатом рядка, на який вказує с . Отримана пам'ять виконується динамічно за допомогою malloc і, отже, її можна звільнити за допомогою free().
Він повертає вказівник на дубльований рядок с .
Нижче наведено реалізацію C, яка демонструє використання функції strdup() у 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;> }> |
проходження замовлення поштою
>
>
Вихід:
GeeksForGeeks>
strndup() :
синтаксис: char *strndup(const char *s, size_t n);
Ця функція схожа на strdup(), але копіює максимум п байтів.
Примітка : якщо s довший за n, тоді копіюється лише n байт, а в кінці додається NULL (‘ ’).
Нижче наведено реалізацію C, яка демонструє використання функції strndup() у C:
C
java має наступний
// 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;> }> |
>
як вибрати стовпці з різних таблиць у sql
>
Вихід:
Geeks>
Розглянемо відмінності у вигляді таблиці -:
| strdup() | strndup() | |
| 1. | Він використовується для повернення вказівника на байтовий рядок із завершеним нульовим значенням, | Він використовується для повернення вказівника на байтовий рядок із закінченням нульовим значенням |
| 2. | Його синтаксис -: char * strdup( const char *str1); | Його синтаксис -: char *strndup( const char *str, size_t size ); |
| 3. | Це визначено в файл заголовка | Це визначено в файл заголовка |
| 4. | Для дублювання потрібен лише один параметр, який є вказівником на рядок байтів із нульовим завершенням | Він приймає два параметри, а саме: 2. максимальна кількість байтів для копіювання з str |
| 5. | Його значенням, що повертається, є покажчик на щойно виділений рядок. | Він повертає нульовий покажчик, якщо сталася помилка. |
Посилання: Linux man(7)