wctomb、_wctomb_l
轉換寬字元至對應的多位元組字元 這些函式已有更安全的版本可用,請參閱 wctomb_s、_wctomb_s_l。
int wctomb(
char *mbchar,
wchar_t wchar
);
int _wctomb_l(
char *mbchar,
wchar_t wchar,
_locale_t locale
);
參數
mbchar
多位元組字元的位址。wchar
寬字元。
傳回值
如果 wctomb 將寬字元轉換為多位元組字元,它會以寬字元傳回 (絕不大於 MB_CUR_MAX) 的位元組數目。 如果 wchar 是寬字元的 null 字元 (L'\0')),則wctomb 會傳回 1。 如果目標指標 mbchar 是NULL,則 wctomb 會傳回 0。 如果轉換在目前地區設定中不可行, wctomb 會傳回– 1 並將 errno 設定為 EILSEQ。
備註
wctomb 函式轉換成其 wchar 引數對應的多位元組字元並將結果儲存在 mbchar。 您可以從任何點的函式在所有程式。 wctomb 在區域設定相依的動作時使用目前的區域設定,_wctomb_l 除了使用傳入的區域設定以外與wctomb 是相同的。 如需詳細資訊,請參閱地區設定。
wctomb 會驗證其參數。 如果 mbchar 是 NULL,則叫用無效參數處理常式,如 參數驗證 中所述。 如果允許繼續執行,errno 會被設定為 EINVAL 且函式會傳回-1 。
需求
常式 |
必要的標頭 |
---|---|
wctomb |
<stdlib.h> |
如需其他相容性資訊,請參閱<簡介>中的相容性。
範例
這個程式說明 wctomb函式的行為。
// crt_wctomb.cpp
// compile with: /W3
#include <stdio.h>
#include <stdlib.h>
int main( void )
{
int i;
wchar_t wc = L'a';
char *pmb = (char *)malloc( MB_CUR_MAX );
printf( "Convert a wide character:\n" );
i = wctomb( pmb, wc ); // C4996
// Note: wctomb is deprecated; consider using wctomb_s
printf( " Characters converted: %u\n", i );
printf( " Multibyte character: %.1s\n\n", pmb );
}
.NET Framework 對等用法
不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需詳細資訊,請參閱平台叫用範例。