##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# mbsrtowcs

From cppreference.com
< c‎ | string‎ | multibyte

Defined in header `<wchar.h>` |  |
size_t mbsrtowcs( wchar_t* dst, const char** src, size_t len, mbstate_t* ps ) |  |

Converts a null-terminated multibyte character sequence, which begins in the conversion state described by `*ps`, from the array whose first element is pointed to by `*src` to its wide character representation. If `dst` is not null, converted characters are stored in the successive elements of the wchar_t array pointed to by `dst`. No more than `len` wide characters are written to the destination array.

Each multibyte character is converted as if by a call to mbrtowc. The conversion stops if:

- The multibyte null character was converted and stored. `src` is set to NULL and `*ps` represents the initial shift state.
- An invalid multibyte character (according to the current C locale) was encountered. `src` is set to point at the beginning of the first unconverted multibyte character.
- the next wide character to be stored would exceed `len`. `src` is set to point at the beginning of the first unconverted multibyte character. This condition is not checked if dst==NULL.

### [edit] Parameters

dst | - | pointer to wide character array where the results will be stored
src | - | pointer to pointer to the first element of a null-terminated multibyte string
len | - | number of wide characters available in the array pointed to by dst
ps | - | pointer to the conversion state object

### [edit] Return value

On success, returns the number of wide characters, excluding the terminating L'\0', written to the character array.. If dst==NULL, returns the number of wide characters that would have been written given unlimited length.

On conversion error (if invalid multibyte character was encountered), returns (size_t)-1, stores EILSEQ in errno, and leaves *ps in unspecified state.

### [edit] Example

| This section is incomplete Reason: no example

### [edit] See also

mbrtowc | converts the next multibyte character to wide character, given state (function) [edit]
wcsrtombs | converts a wide string to narrow multibyte character string, given state (function) [edit]
C++ documentation for mbsrtowcs

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/string/multibyte/mbsrtowcs&oldid=56800"
Category:

- Todo no example