Пространства имён
Варианты
Действия

std::wcsncpy

Материал из cppreference.com
< cpp‎ | string‎ | wide
 
 
 
Широкие строки с завершающим нулём
Функции
Операции с символами
Преобразования в числовые форматы
(C++11)(C++11)
(C++11)(C++11)
Операции со строками
Операции с массивами
 
Определено в заголовочном файле <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); // это скопирует 'hi' и повторит \0 три раза
 
    std::cout << "Содержимое dest: ";
    for (const wchar_t c : dest)
    {
        if (c)
            std::wcout << c << ' ';
        else
            std::wcout << "\\0" << ' ';
    }
    std::wcout << '\n';
}

Вывод:

Содержимое dest: h i \0 \0 \0 f

[править] Смотрите также

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