Namespaces
Variants

std:: wcsncpy

From cppreference.net
Определено в заголовочном файле <cwchar>
wchar_t * wcsncpy ( wchar_t * dest, const wchar_t * src, std:: size_t count ) ;

Копирует не более count символов широкой строки, на которую указывает src (включая завершающий нулевой широкий символ), в массив широких символов, на который указывает dest .

Если count достигается до того, как вся строка src была скопирована, результирующий массив широких символов не завершается нулевым символом.

Если после копирования завершающего нулевого широкого символа из src , значение count не достигнуто, в dest записываются дополнительные нулевые широкие символы до тех пор, пока не будет записано в общей сложности count символов.

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

Содержание

Параметры

dest - указатель на массив широких символов для копирования
src - указатель на широкую строку для копирования
count - максимальное количество широких символов для копирования

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

dest

Примечания

В типичном использовании, count является размером целевого массива.

Пример

#include <cwchar>
#include <iostream>
int main()
{
    const wchar_t src[] = L"hi";
    wchar_t dest[6] = {L'a', L'b', L'c', L'd', L'e', L'f'};
    std::wcsncpy(dest, src, 5); // this will copy 'hi' and repeat \0 three times
    std::wcout << "The contents of dest are: ";
    for (const wchar_t c : dest)
    {
        if (c)
            std::wcout << c << ' ';
        else
            std::wcout << "\\0" << ' ';
    }
    std::wcout << '\n';
}

Вывод:

The contents of dest are: h i \0 \0 \0 f

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

копирует одну широкую строку в другую
(функция)
копирует определённое количество широких символов между двумя неперекрывающимися массивами
(функция)
копирует определённое количество символов из одной строки в другую
(функция)
C documentation для wcsncpy