##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# mbtowc

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

Defined in header `<stdlib.h>` |  |
int mbtowc( wchar_t *pwc, const char *s, size_t n ) |  | (until C99)
int mbtowc( wchar_t *restrict pwc, const char *restrict s, size_t n ) |  | (since C99)

Converts a multibyte character whose first byte is pointed to by `s` to a wide character, written to `*pwc` if `pwc` is not null.

If `s` is a null pointer, resets the global conversion state and determines whether shift sequences are used.

### [edit] Notes

Each call to `mbtowc` updates the internal global conversion state (a static object of type mbstate_t, only known to this function). If the multibyte encoding uses shift states, care must be taken to avoid backtracking or multiple scans. In any case, multiple threads should not call `mbtowc` without synchronization: mbrtowc may be used instead.

### [edit] Parameters

pwc | - | pointer to the wide character for output
s | - | pointer to the multibyte character
n | - | limit on the number of bytes in s that can be examined

### [edit] Return value

If `s` is not a null pointer, returns the number of bytes that are contained in the multibyte character or -1 if the first bytes pointed to by `s` do not form a valid multibyte character or ​0​ if `s` is pointing at the null charcter '\0'.

If `s` is a null pointer, resets its internal conversion state to represent the initial shift state and returns ​0​ if the current multibyte encoding is not state-dependent (does not use shift sequences) or a non-zero value if the current multibyte encoding is state-dependent (uses shift sequences).

### [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]
mblen | returns the number of bytes in the next multibyte character (function) [edit]
C++ documentation for mbtowc

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

- Todo no example