Converts a wide-character string into a multibyte string #include <stdlib.h> size_t wcstombs ( char * restrict dest , const wchar_t * restrict src , size_t n ); The wcstombs( ) function converts one or more wide characters from the array addressed by src into a string of multibyte characters, beginning in the initial parse state, and stores the results in the array of char addressed by dest. The third argument, n, specifies the maximum number of characters that can be written to the output buffer; conversion ends either when a terminating null character has been written to the output buffer, or when writing another multibyte character would exceed the buffer size of n bytes. The wcstombs( ) function returns the number of bytes written, not including the terminating null character if any, or -1 if an encoding error occurs. The conversion performed on each wide character is the same as that which would be performed by the wctomb( ) function.
Examplewchar_t fmt_amount[128] = { L'\0' }; wchar_t prefix[32] = L"-"; wchar_t suffix[32] = L""; wchar_t number[128] = L"123.456,78"; char output_amount[256]; wcscpy( fmt_amount, prefix ); wcscat( fmt_amount, number ); wcscat( fmt_amount, suffix ); if ( -1 != wcstombs( output_amount, fmt_amount, 256 )) printf( "Full amount: %s\n", output_amount ); See Alsowcsrtombs( ), mbstowcs( ), and wcrtomb( ); wctomb( ), mbtowc( ), and mbrtowc( ) |