Namespaces
Variants
Views
Actions

std::wcsncpy

From cppreference.com
< cpp‎ | string‎ | wide
Revision as of 15:02, 2 November 2012 by P12bot (Talk | contribs)

Defined in header <cwchar>
wchar_t *wcsncpy( wchar_t *dest, const wchar_t *src, std::size_t count );

Copies at most count characters of the wide string pointed to by src (including the terminating null wide character) to wide character array pointed to by dest.

If count is reached before the entire string src was copied, the resulting wide character array is not null-terminated.

If, after copying the terminating null wide character from src, count is not reached, additional null wide characters are written to dest until the total of count characters have been written.

If the strings overlap, the behavior is undefined.

Contents

Parameters

dest - pointer to the wide character array to copy to
src - pointer to the wide string to copy from
count - maximum number of wide characters to copy

Return value

dest

Notes

In typical usage, count is the size of the destination array.

Example

#include <iostream>
#include <cwchar>
 
int main()
{
    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(wchar_t c : dest) {
        if(c)
            std::wcout << c << ' ';
        else
            std::wcout << "\\0" << ' ';
    }
    std::wcout << '\n';
}

Output:

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

See also

Template:cpp/string/wide/dcl list wcscpyTemplate:cpp/string/wide/dcl list wmemcpy
C documentation for wcsncpy