The function mbtowc () in C

Int mbtowc (wchar_t * pwc, const char * str, n) converts a range of bytes into a wide char.

Int mbtowc (wchar_t * pwc, const char * str, n) converts a range of bytes into a wide char.

Declare the function mbtowc () in C

Below is the declaration for mbtowc () in C:

 int mbtowc ( whcar_t * pwc , const char * str , size_t n ) 

Parameters

pwc : This is the pointer to an object of type wchar_t.

str : This is the pointer to the first byte of a multi-byte char.

n : This is the maximum number of bytes to be tested for character length.

Returns the value

If str is not NULL, then mbtowc () returns the number of bytes used starting at str, or returns 0 if str points to a null byte, or returns -1 if there is an error.

If str is NULL, then mbtowc () returns a non-zero value if the encoding is status or returns 0 if there is no state.

For example

The following C program illustrates the usage of mbtowc () in C:

 #include #include #include int main () { char * str = "Hoc C co ban va nang cao tai QTM !!!" ; wchar_t mb [ 100 ]; int len ; len = mblen ( NULL , MB_CUR_MAX ); mbtowc ( mb , str , len * strlen ( str ) ); wprintf ( L "%ls n" , mb ); return ( 0 ); } 

Compiling the above C program in Dev-C will not give you any results, and you will see a warning line saying that converting from string constants to char * is old, and should not be used.

According to Tutorialspoint

Previous lesson: The mbstowcs () function in C

Next lesson: wctomb () function in C

4 ★ | 1 Vote