Converts a wide character to the corresponding multibyte character.
int wctomb( char *mbchar, wchar_t wchar );
Routine | Required Header | Compatibility |
wctomb | <stdlib.h> | ANSI, Win 95, Win NT |
For additional compatibility information, see Compatibility in the Introduction.
Libraries
LIBC.LIB | Single thread static library, retail version |
LIBCMT.LIB | Multithread static library, retail version |
MSVCRT.LIB | Import library for MSVCRT.DLL, retail version |
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.
Parameters
mbchar
The address of a multibyte character
wchar
A wide character
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.
Example
/* WCTOMB.CPP illustrates the behavior of the wctomb function */
#include <stdio.h>
#include <stdlib.h>
void 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( "\tCharacters converted: %u\n", i );
printf( "\tMultibyte character: %.1s\n\n", pmb );
printf( "Attempt to convert when target is NULL:\n" );
i = wctomb( pmbnull, wc );
printf( "\tCharacters converted: %u\n", i );
printf( "\tMultibyte 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: (
Data Conversion Routines | Locale Routines
See Also mblen, mbstowcs, mbtowc, wcstombs, WideCharToMultiByte