C語言 庫函數(shù) wctomb()
C語言 庫函數(shù) wctomb()
C語言 標(biāo)準(zhǔn)庫 <stdlib.h>
C 庫函數(shù) int wctomb(char *str, wchar_t wchar) 把寬字符 wchar 轉(zhuǎn)換為它的多字節(jié)表示形式,并把它存儲(chǔ)在 str 指向的字符數(shù)組的開頭。
1. 聲明
下面是 wctomb() 函數(shù)的聲明。
int wctomb(char *str, wchar_t wchar)
2. 參數(shù)
- str -- 一個(gè)指針,指向一個(gè)足以存儲(chǔ)多字節(jié)字符的數(shù)組。
- wchar -- 類型為 wchar_t 的寬字符。
3. 返回值
- 如果 str 不為 NULL,wctomb() 函數(shù)返回寫入字節(jié)數(shù)組中的字節(jié)數(shù)。如果 wchar 不能被表示為一個(gè)多字節(jié)序列,則會(huì)返回 -1。
- 如果 str 為 NULL,如果編碼具有移位狀態(tài),則 wctomb() 函數(shù)返回非零,如果編碼是無狀態(tài)的,則返回零。
4. 實(shí)例
下面的實(shí)例演示了 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("要轉(zhuǎn)換的寬字符:\n"); i = wctomb( pmb, wc ); printf("被轉(zhuǎn)換的字符:%u\n", i); printf("多字節(jié)字符:%.1s\n", pmb); printf("當(dāng)要轉(zhuǎn)換的字符為 NULL 時(shí)嘗試轉(zhuǎn)換:\n"); i = wctomb( pmbnull, wc ); printf("被轉(zhuǎn)換的字符:%u\n", i); /* 不會(huì)輸出任何值 */ printf("多字節(jié)字符:%.1s\n", pmbnull); return(0); }
讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
要轉(zhuǎn)換的寬字符: 被轉(zhuǎn)換的字符:1 多字節(jié)字符:a 當(dāng)要轉(zhuǎn)換的字符為 NULL 時(shí)嘗試轉(zhuǎn)換: 被轉(zhuǎn)換的字符:0 多字節(jié)字符:
相關(guān)文章
- C++ 繼承
- C++ 文件和流
- C++ 命名空間
- C++ 面試題
- C語言 運(yùn)算符
- C語言 頭文件
- C語言 強(qiáng)制類型轉(zhuǎn)換
- C語言 可變參數(shù)
- C語言 標(biāo)準(zhǔn)庫 <math.h>
- C# 教程
- C# 數(shù)組 Array
- C# 預(yù)處理器指令
- C++ Null 指針
- C++ 傳遞指針給函數(shù)
- C++ 從函數(shù)返回指針
- C++ 指向數(shù)組的指針
- C++ 函數(shù)調(diào)用運(yùn)算符 () 重載
- C# Windows 文件系統(tǒng)的操作
- C# 動(dòng)態(tài)數(shù)組(ArrayList)
- C# 嵌套 switch 語句