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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。