Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" S "

scalb,scalbf,scalbl 

scalbln,scalblnf,scalblnl 

scalbn,scalbnf,scalbnl 

setbuf 

setvbuf 

signbit 

sin,sinf,sinl 

sincos,sincosf,sincosl 

sinh,sinhf,sinhl 

sleep 

sqrt,sqrtf,sqrtl 

strcasestr 

strcat 

strchr 

strchrnul 

strcmp 

strcpy 

strcspn 

strdup 

strerror 

strftime 

strlen 

strncat 

strndup 

strncmp 

strncpy 

strpbrk 

strrchr 

strspn 

strstr 

strtod 

strtok 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

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;
}

Результат:

Вывод в консоль:

Дубликат: 01234



Смотри так же:

strdup
strndup
strdupa
strndupa
alloca
calloc
free
malloc
realloc
wcsdup


Яндекс.Метрика

Рейтинг@Mail.ru