共用方式為


wctomb_s _wctomb_s_l

將寬字元轉換為對應的多位元組字元。版本的wctomb _wctomb_l中所述的安全性增強功能與安全性功能,則在 CRT 中

errno_t wctomb_s(
   int *pRetValue,
   char *mbchar,
   size_t sizeInBytes,
   wchar_t wchar 
);
errno_t _wctomb_s_l(
   int *pRetValue,
   char *mbchar,
   size_t sizeInBytes,
   wchar_t wchar,
   _locale_t locale
);

參數

  • [out] pRetValue
    個位元組或將結果程式碼數目。

  • [out] mbchar
    多位元組字元的位址。

  • [in] sizeInBytes
    緩衝區的大小mbchar。

  • [in] wchar
    廣泛的字元。

  • [in] locale
    若要使用地區設定。

傳回值

零,如果執行成功、 失敗的錯誤代碼。

錯誤狀況

mbchar

sizeInBytes

傳回值

pRetValue

NULL

>0

EINVAL

不能修改

任何

>INT_MAX

EINVAL

不能修改

任何

太小

EINVAL

不能修改

如果任何上述的錯誤狀況發生時,不正確的參數處理常式會叫用,如所述參數驗證。如果要繼續,請允許執行wctomb會傳回EINVAL ,並設定errno到EINVAL。

備註

wctomb_s函式會將其wchar為對應的多位元組字元的引數,並儲存結果,在mbchar。您可以從任何程式中的任何點,來呼叫函式。

如果wctomb_s將寬字元轉換為多位元組的字元,它會將位元組數 (也就是永遠不會大於MB_CUR_MAX) 中所指的整數為寬字元pRetValue。如果wchar是寬字元的 null 字元 (L '\ 0'), wctomb_s填滿pRetValue 1。如果目標指標mbchar為 NULL, wctomb_s 0 會置於pRetValue。如果該轉換是不可能在目前的地區設定中, wctomb_s – 1 會置於pRetValue。

wctomb_s使用目前的地區設定的地區設定相關資訊。 _wctomb_s_l不同之處在於它所使用的地區設定中傳遞,則是完全相同。如需詳細資訊,請參閱 地區設定

需求

常式

所需的標頭

wctomb_s

<stdlib.h>

_wctomb_s_l

<stdlib.h>

其他的相容性資訊,請參閱相容性在簡介中。

範例

此程式會說明的行為wctomb函式。

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

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

    printf_s( "Convert a wide character:\n" );
    wctomb_s( &i, pmb, MB_CUR_MAX, wc );
    printf_s( "   Characters converted: %u\n", i );
    printf_s( "   Multibyte character: %.1s\n\n", pmb );
}
  

.NET Framework 對等用法

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

請參閱

參考

資料轉換

地區設定

_mbclen,mblen _mblen_l

mbstowcs _mbstowcs_l

mbtowc _mbtowc_l

wcstombs _wcstombs_l

WideCharToMultiByte