C library function - mbtowc()

Advertisements


Description

The C library function int mbtowc(whcar_t *pwc, const char *str, size_t n) converts a multibyte sequence to a wide character.

Declaration

Following is the declaration for mbtowc() function.

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 multibyte character.

  • n -- This is the maximum number of bytes to be checked for character length.

Return Value

  • If str is not NULL, the mbtowc() function returns the number of consumed bytes starting at str, or 0 if s points to a null byte, or -1 upon failure.

  • If str is NULL, the mbtowc() function returns non-zero if the encoding has non-trivial shift state, or zero if the encoding is stateless.

Example

The following example shows the usage of mbtowc() function.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
   char *str = "This is tutorialspoint.com";
   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);
}

Let us compile and run the above program, this will produce the following result which will not be clear to you because it has been printing in multibyte, a kind of binary output.

???


Advertisements
Advertisements