std::wcsncpy
Определено в заголовке <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 документация для wcsncpy |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/string/wide/wcsncpy