std::wcsncpy
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <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
Смотрите также
| копирует одну широкую строку в другую (функция) | |
| копирует определённое количество широких символов между двумя неперекрывающимися массивами (функция) | |
| копирует определённое количество символов из одной строки в другую (функция) | |
Документация C по wcsncpy
| |