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。 如需詳細資訊,請參閱平台叫用範例。