Export (0) Print
Expand All
Expand Minimize

wctomb

Converts a wide character to the corresponding multibyte character.

int wctomb(
   char *mbchar,
   wchar_t wchar 
);

Parameters

mbchar
The address of a multibyte character.
wchar
A wide character.

Return Value

If wctomb converts the wide character to a multibyte character, it returns the number of bytes (which is never greater than MB_CUR_MAX) in the wide character. If wchar is the wide-character null character (L'\0'), wctomb returns 1. If the conversion is not possible in the current locale, wctomb returns –1.

Remarks

The wctomb function converts its wchar argument to the corresponding multibyte character and stores the result at mbchar. You can call the function from any point in any program.

Requirements

Routine Required header Compatibility
wctomb <stdlib.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.

Libraries

All versions of the C run-time libraries.

Example

This program illustrates the behavior of the wctomb function.

// crt_wctomb.cpp
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   int i;
   wchar_t wc = L'a';
   char *pmbnull = NULL;
   char *pmb = (char *)malloc( sizeof( char ) );

   printf( "Convert a wide character:\n" );
   i = wctomb( pmb, wc );
   printf( "   Characters converted: %u\n", i );
   printf( "   Multibyte character: %.1s\n\n", pmb );

   printf( "Attempt to convert when target is NULL:\n" );
   i = wctomb( pmbnull, wc );
   printf( "   Characters converted: %u\n", i );
   printf( "   Multibyte character: %.1s\n", pmbnull );
}

Output

Convert a wide character:
   Characters converted: 1
   Multibyte character: a

Attempt to convert when target is NULL:
   Characters converted: 0
   Multibyte character: (

See Also

Data Conversion Routines | Locale Routines | mblen | mbstowcs | mbtowc | wcstombs | WideCharToMultiByte | Run-Time Routines and .NET Framework Equivalents

Show:
© 2014 Microsoft