Функция strncpy

Прототип функции strncpy:

char * strncpy( char * destptr, const char * srcptr, size_t num );

Заголовочный файл:

Название Язык
string.h С
cstring С++

Описание

Функция копирует первые num символов из строки srcptr в строку destptr. Если конец строки srcptr (символ конца строки ) достигнут прежде, чем были скопированы num символов, к скопированным символам в конец строки destptr добавляется нуль-символ, после чего, строка считается скопированной.

Если же строка назначения окажется меньше num, тогда скопируются символы, которые поместятся в destptr, учитывая то, что в конце строки обязательно должен стоять символ конца строки.

Параметры:

  • destptr
    Указатель на строку назначения (куда будут копироваться символы).
  • srcptr
    Копируемая строка — строка из которой будут копироваться символы.
  • num
    Максимальное количество копируемых символов строки srcptr.

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

Указатель на строку назначения.

Пример: исходный код программы

//пример использования функции strncpy

#include <iostream>
#include <cstring>

int main()
{
  char str1[] = "Быть или не быть";
  char str2[10];
  strncpy(str2, str1, 8);                   // скопировать 8 байт строки str1 в строку str2
  str2[8] = '';                           // добавить в конец строки символ конца строки
  std::cout << str2 << std::endl;
  return 0;
}

Пример работы программы

CppStudio.com
Быть
Автор: admin
Дата: 31.08.2012
Поделиться:

Комментарии

  1. thefair

    В результате будет:

    Быть или

    • admin

      admin

      Программа была написана в Линуксе, а там для кодировки символов кириллицы отводится по два байта. Поэтому получился такой результат. У вас получилось — «быть или», так как в вашей системе, под каждый символ кириллицы отводится один байт. Нет сомнения в том, что вы работаете под виндой.

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.