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

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

" 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

strncpy – копирование строк c ограничением длины.

Синтаксис:

#include < string.h >
char *strncpy (char *destination, const char *source, size_t n);

Аргументы:

destination – указатель на строку в которую будут скопированы данные.
source – указатель на строку источник копируемых данных.
n – ограничение длинны копирования

Возвращаемое значение:

Функция возвращает указатель на строку, в которую скопированы данные.

Описание:

Функция strncpy копирует данные из строки, на которую указывает аргумент source, в строку на который указывает аргумент destination, пока не встретится символ конца строки (нулевой символ) или количество скопированных символов не достигнет величины указанной в аргументе n. При этом символ конца строки не копируется.

Если в аргументе n указана величина большая, чем длинна строки, т.е. символ конца строки '\000' встретился раньше, чем было скопировано n символов, то в массив, на который указывает аргумент destination, дозаписывается столько нулевых символов, чтобы общая длина записанной строки достигла величины указанной в аргументе n.

Если строки перекрываются, результат копирования будет не определен.

Пример:

В примере создается массив src, содержащий строку «12345» и «6789», и массивы dst1 и dst2, содержащие строки «1111111111». Затем в массив dst1 копируется с помощью функции strncpy строка из массива src, но длинной не более чем 3 символа. А в массив dst2 копируется строка из массива src, но длиной не более чем 7 символа.

Коды символов содержащихся в массивах src, dst1 и dst2 выводятся на консоль.

Обратите внимание, что при первом копировании не добавляется символ конца строки. А при втором копировании копируется пять символов из массива src, а шестой и седьмой символы массива dst2 обнуляются.


#include < stdio.h >  // Для printf
#include < string.h > // Для strncpy
int main (void)
{    
   // Массив источник данных
   char src[10]=”12345\0006789”;
 
   // Массивы приемники данных
   char dst1[10]=”1111111111”;
   char dst2[10]=”1111111111”;

   // Счетчик
   int i;

   // Вывод массива src на консоль
   printf (“src:  ”);
   for (i=0;i < 10;i++)
      printf (“ %2d”,(unsigned short) src[i]);
   printf (“\n ”);

   // Копируем строку длиною не более трех символов из массива src в массив dst1. 
   strncpy (dst1, src,3);

   // Вывод массива dst1 на консоль
   printf (“dst1: ”);
   for (i=0;i<10;i++)
      printf (“ %2d”,(unsigned short) dst1[i]);
   printf (“\n”);

   // Копируем строку длиною не более семи символов из массива src в массив dst2. 
   strncpy (dst2, src,7);

   // Вывод массива dst2 на консоль
   printf (“dst2: ”);
   for (i=0;i<10;i++)
      printf (“ %2d”,(unsigned short) dst2[i]);
   printf (“\n”);

   return 0;
}

Результат:

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

src:  49 50 51 52 53 0  54 55 56 57
dst1: 49 50 51 49 49 49 49 49 49 49
dst2: 49 50 51 52 53 0  0  49 49 49



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

memccpy
memcpy
memmove
memset
mktime
strcat
strcpy
strncat
strxfrm


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

Рейтинг@Mail.ru