C庫函數(shù) int wctomb(char *str, wchar_t wchar) 函數(shù)將寬字符wchar 多字節(jié)表示,并把它存儲(chǔ)在字符數(shù)組指向 bystr 的開始。
以下是wctomb() 函數(shù)的聲明。
int wctomb(char *str, wchar_t wchar)
str -- 這是大到足以容納一個(gè)多字節(jié)字符數(shù)組的指針,
wchar -- 這是寬字符wchar_t類型。
如果str是不是NULL,wctomb() 函數(shù)返回已寫入字節(jié)數(shù)組 str 字節(jié)數(shù)。如果wchar 不能表示為多字節(jié)序列,則返回-1。
如果str是NULL,wctomb() 函數(shù)返回非零如果編碼非平凡的轉(zhuǎn)變狀態(tài),或者為零,如果編碼是無狀態(tài)的。
下面的例子顯示 wctomb() 函數(shù)的用法。
#include <stdio.h> #include <stdlib.h> int main() { int i; wchar_t wc = L'a'; char *pmbnull = NULL; char *pmb = (char *)malloc(sizeof( char )); printf("Converting wide character: "); i = wctomb( pmb, wc ); printf("Characters converted: %u ", i); printf("Multibyte character: %.1s ", pmb); printf("Trying to convert when target is NULL: "); i = wctomb( pmbnull, wc ); printf("Characters converted: %u ", i); /* this will not print any value */ printf("Multibyte character: %.1s ", pmbnull); return(0); }
讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
Converting wide character: Characters converted: 1 Multibyte character: a Trying to convert when target is NULL: Characters converted: 0 Multibyte character: