C庫函數(shù)size_t wcstombs(char *str, const wchar_t *pwcs, size_t n) 將寬字符的字符串pwcs,由str開始的多字節(jié)字符串。最多n個字節(jié)寫入到 str。
以下是 wcstombs() 函數(shù)的聲明。
size_t wcstombs(char *str, const wchar_t *pwcs, size_t n)
str -- 這是一個至少有n個字節(jié)長的字符元素的數(shù)組的指針。
pwcs -- 這是寬規(guī)律研究要轉(zhuǎn)換的字符串。
n -- 這是最大數(shù)量的字節(jié)被寫入到str。
這個函數(shù)返回的字節(jié)數(shù)(而不是字符)轉(zhuǎn)換并寫入到str,不包括空字符結(jié)束。如果遇到無效的多字節(jié)字符,返回值-1。
下面的例子演示了如何使用wcstombs() 函數(shù)。
#include <stdio.h> #include <stdlib.h> #define BUFFER_SIZE 50 int main() { size_t ret; char *MB = (char *)malloc( BUFFER_SIZE ); wchar_t *WC = L"http://www.yiibai.com/html"; /* converting wide-character string */ ret = wcstombs(MB, WC, BUFFER_SIZE); printf("Characters converted = %u ", ret); printf("Multibyte character = %s ", MB); return(0); }
讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
Characters converted = 29 Multibyte character = http://www.yiibai.com/html