This documentation is archived and is not being maintained.

ctype::_Widen_s 

Converts a character of type char in the native character set to the corresponding character of type CharType used by a locale.


const char *_Widen_s(
    const char *_First,
    const char *_Last,
    CharType *_Dest,
    size_t _Dest_size
) const;

Parameters

_First

A pointer to the first character in the range of characters to be converted.

_Last

A pointer to the character immediately following the last character in the range of characters to be converted.

_Dest

A pointer to the first character of type CharType in the destination range that stores the converted range of characters.

_Dest_size

The size of _Dest. If CharType is char, then this is in bytes. If CharType is wchar_t, then this is in words.

This member function returns a pointer to the destination range of characters of type CharType used by a locale converted from native characters of type char.

This member function returns _Do_widen_s(_First, _Last, _Dest, _DestSize).

// ctype__Widen_s.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
    locale loc1("English");
    char *str1 = "Hello everyone!";
    const int str2_size = 16;
    wchar_t str2[str2_size];
    bool result1 = (use_facet<ctype<wchar_t> >(loc1)._Widen_s
        (str1, str1 + strlen(str1), &str2[0], str2_size) != 0);
    str2[strlen(str1)] = '\0';
    cout << str1 << endl;
    wcout << &str2[0] << endl;

    ctype<wchar_t>::char_type charT;
    charT = use_facet<ctype<char> >(loc1).widen('a');
}

Output

Hello everyone!
Hello everyone!

Header: <locale>

Show: