strndup – дублирование строк с ограничением длины и выделением памяти под новую строку.
Синтаксис:
#include < string.h >
char *strndup(const char *str, size_t n);
Аргументы:
str – указатель на дублируемую строку.
n – ограничение длины дублируемой строки.
Возвращаемое значение:
NULL – если не удалость выделить память под новую строку или скопировать строку на которую указывает аргумент str.
Указатель на дублирующую строку.
Описание:
Функция strdup дублирует строку, на которую указывает аргумент str. При этом вводится ограничение на максимальную длину дублируемой строки. Если строка короче чем n байт, то дублируется вся строка. Если строка длиннее, чем n байт, то продублировано будет только n байт.
Память под дубликат строки выделяется с помощью функции malloc, и по окончанию работы с дубликатом должна быть очищена с помощью функции free.
Пример:
В примере из строки «0123456789» дублируется 5 байт с помощью функции strndup и результат выводится на консоль. Перед завершением работы память, выделенная под дубликат строки, очищается.
#include < stdio.h > // Для printf
#include < string.h > // Для strndup
#include < stdlib.h > // Для free
int main (void)
{
// Исходная строка
char str [11]=”0123456789”;
// переменная, в которую будет помещен указатель на дубликат строки
char *istr;
// Дублирование строки
istr = strndup (str,5);
// Вывод дубликата на консоль
printf (“Дубликат: %s\n“, istr);
// Очищаем память, выделенную под дубликат
free (istr);
return 0;
}
| |
Результат:
Вывод в консоль:
Смотри так же:
strdup
strndup
strdupa
strndupa
alloca
calloc
free
malloc
realloc
wcsdup
|