C語言wchar頭文件(wchar.h)中wcrtomb函數的用法及代碼示例。
用法:
size_t wcrtomb (char* pmb, wchar_t wc, mbstate_t* ps);
將寬字符轉換為多字節序列
該函數使用(並更新)由以下內容描述的換檔狀態ps。如果ps是一個空指針,該函數使用其自己的內部換檔狀態,隻有在調用此函數時才需要進行更改。
如果wc是一個空寬字符,該函數將重置移位狀態並存儲一個空字節,之後是恢複初始移位狀態所需的任何移位序列。
使用空指針作為對函數的調用mb也會重置換檔狀態(並忽略參數wc)。
此函數的行為取決於LC_CTYPE所選類別C語言環境。
這是可重啟的版本wctomb(<cstdlib>)。
參數
- pmb
- 指向足以容納多字節序列的數組的指針。
當前語言環境中字符的多字節序列的最大長度為MB_CUR_MAX個字節。
或者,可以使用空指針調用該函數,在這種情況下,該函數總是將變速狀態重置為初始狀態,就像wc曾是L'\0'
(忽略傳遞為的實際值wc)。 - wc
- 寬字型wchar_t。
- ps
- 指向一個指針mbstate_t定義轉換狀態的對象。
如果這是一個空指針,則該函數使用其自己的內部換檔狀態,它是在程序啟動時初始化的,隻能通過對此函數的調用來更改。
返回值
寫入的多字節序列的大小mb(以字節為單位),包括任何移位字符。如果沒有字符對應,則函數返回(size_t)-1和集errno至EILSEQ。
如果mb如果為空指針,則該函數返回1加上恢複初始移位狀態所需的字節數(就像該函數在內部緩衝區上操作,並且wc曾是
L'\0'
)。示例
/* wcrtomb example */
#include <wchar.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
const wchar_t* pt = L"wcrtomb example";
char buffer [MB_CUR_MAX];
size_t length, i;
mbstate_t mbs;
mbrlen (NULL,0,&mbs); /* initialize mbs */
while (*pt) {
length = wcrtomb(buffer,*pt,&mbs);
if ((length==0)||(length>MB_CUR_MAX)) break;
putchar ('[');
for (i=0;i<length;++i) putchar (buffer[i]);
putchar (']');
++pt;
}
return 0;
}
該示例打印使用選定的語言環境將寬字符串轉換為的多字節字符(在這種情況下,"C"語言環境)。
輸出:
[w][c][r][t][o][m][b][ ][e][x][a][m][p][l][e] |
相關用法
- C語言 fgetwc用法及代碼示例
- C語言 fgetws用法及代碼示例
- C語言 fputwc用法及代碼示例
- C語言 fputws用法及代碼示例
- C語言 fwide用法及代碼示例
- C語言 fwprintf用法及代碼示例
- C語言 fwscanf用法及代碼示例
- C語言 getwc用法及代碼示例
- C語言 getwchar用法及代碼示例
- C語言 putwc用法及代碼示例
- C語言 putwchar用法及代碼示例
- C語言 swprintf用法及代碼示例
- C語言 swscanf用法及代碼示例
- C語言 ungetwc用法及代碼示例
- C語言 vfwprintf用法及代碼示例
- C語言 vfwscanf用法及代碼示例
- C語言 vswprintf用法及代碼示例
- C語言 vswscanf用法及代碼示例
- C語言 vwprintf用法及代碼示例
- C語言 vwscanf用法及代碼示例
- C語言 wprintf用法及代碼示例
- C語言 wscanf用法及代碼示例
- C語言 wcstod用法及代碼示例
- C語言 wcstof用法及代碼示例
- C語言 wcstol用法及代碼示例
- C語言 wcstold用法及代碼示例
- C語言 wcstoll用法及代碼示例
- C語言 wcstoul用法及代碼示例
- C語言 wcstoull用法及代碼示例
- C語言 btowc用法及代碼示例
- C語言 mbrlen用法及代碼示例
- C語言 mbrtowc用法及代碼示例
- C語言 mbsinit用法及代碼示例
- C語言 wctob用法及代碼示例
- C語言 wcsrtombs用法及代碼示例
- C語言 wcscat用法及代碼示例
- C語言 wcschr用法及代碼示例
- C語言 wcscmp用法及代碼示例
- C語言 wcscpy用法及代碼示例
- C語言 wcscspn用法及代碼示例
- C語言 wcslen用法及代碼示例
- C語言 wcsncat用法及代碼示例
- C語言 wcsncmp用法及代碼示例
- C語言 wcsncpy用法及代碼示例
- C語言 wcspbrk用法及代碼示例
- C語言 wcsrchr用法及代碼示例
- C語言 wcsspn用法及代碼示例
- C語言 wcsstr用法及代碼示例
- C語言 wcstok用法及代碼示例
- C語言 wmemchr用法及代碼示例
- C語言 wmemcmp用法及代碼示例
- C語言 wmemcpy用法及代碼示例
- C語言 wmemmove用法及代碼示例
- C語言 wmemset用法及代碼示例
- C語言 wcsftime用法及代碼示例
注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C wcrtomb function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。